Internal combustion engine control for improved fuel efficiency

ABSTRACT

A variety of methods and arrangements for improving the fuel efficiency of internal combustion engines are described. Generally, an engine is controlled to operate in a skip fire variable displacement mode. In various embodiments, the appropriate firings are determined dynamically during operation of the engine on a firing opportunity by firing opportunity basis and/or without the use of predefined firing patterns.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Divisional of U.S. patent application Ser. Nos.13/004,839 and 13/004,844, both of which were filed on Jan. 11, 2011 andboth of which claim priority of Provisional Application No. 61/294,077filed Jan. 11, 2010 and are a Continuation-in-Part of U.S. patentapplication Ser. No. 12/501,345 filed Jul. 10, 2009, which is aContinuation-in-Part of U.S. patent application Ser. No. 12/355,725filed Jan. 16, 2009 which claims the priority of U.S. Provisional PatentApplication Nos. 61/080,192, filed Jul. 11, 2008; and 61/104,222, filedOct. 9, 2008. Each of these priority applications is incorporated hereinby reference and all are entitled: “INTERNAL COMBUSTION ENGINE CONTROLFOR IMPROVED FUEL EFFICIENCY.” This application is also related to U.S.Pat. Nos. 7,886,715, 7,577,511 and 7,849,835, which are incorporatedherein by reference.

FIELD OF THE INVENTION

The present invention relates generally to internal combustion enginesand to methods and arrangements for controlling internal combustionengines to operate more efficiently. Generally, selected combustionevents are skipped during operation of the internal combustion engine sothat other working cycles can operate at better thermodynamicefficiency.

BACKGROUND OF THE INVENTION

There are a wide variety of internal combustion engines in common usagetoday. Most internal combustion engines utilize reciprocating pistonswith two or four-stroke working cycles and operate at efficiencies thatare well below their theoretical peak efficiency. One of the reasonsthat the efficiency of such engines is so low is that the engine must beable to operate under a wide variety of different loads. Accordingly,the amount of air and/or fuel that is delivered into each cylindertypically varies depending upon the desired torque or power output. Itis well understood that the cylinders are more efficient when they areoperated under specific conditions that permit full or near-fullcompression and optimal fuel injection levels that are tailored to thecylinder size and operating conditions. Generally, the bestthermodynamic efficiency of an engine is found when the most air isintroduced into the cylinders. However, in engines that control thepower output by using a throttle to regulate the flow of air into thecylinders (e.g., Otto cycle engines used in many passenger cars),operating at a substantially unthrottled position would typically resultin the delivery of more power (and often far more power) than desired orappropriate.

There are a number of reasons that internal combustion engines do notoperate as efficiently at partial throttle. One of the most significantfactors is that less air is provided to the cylinder at partial throttlethan at full throttle which reduces the effective compression of thecylinder, which in turn reduces the thermodynamic efficiency of thecylinder. Another very significant factor is that operating at partialthrottle requires more energy to be expended to pump air into and out ofthe cylinders than is required when the cylinder is operating at fullthrottle—these losses are frequently referred to as pumping losses.

Over the years there have been a wide variety of efforts made to improvethe thermodynamic efficiency of internal combustion engines. Oneapproach that has gained popularity is to vary the displacement of theengine. Most commercially available variable displacement engineseffectively “shut down” some of the cylinders during certain low-loadoperating conditions. When a cylinder is “shut down”, its piston stillreciprocates, however neither air nor fuel is delivered to the cylinderso the piston does not deliver any power during its power stroke. Sincethe cylinders that are shut down don't deliver any power, theproportionate load on the remaining cylinders is increased, therebyallowing the remaining cylinders to operate at an improved thermodynamicefficiency. The improved thermodynamic efficiency results in improvedfuel efficiency. Although the remaining cylinders tend to operate atimproved efficiency, conventional variable displacement engines have anumber of drawbacks that limit their overall efficiency. One drawback ofmost commercially available variable displacement engines is that theytend to kick out of the variable displacement mode very quickly whenchanges are made to the desired operational state of the engine. Forexample, many commercially available automotive variable displacementengines appear to kick out of the variable displacement operating modeand into a “conventional”, all cylinder operational mode any time thedriver requests non-trivial additional power by further depressing theaccelerator pedal. In many circumstances this results in the engineswitching out of the fuel saving variable displacement mode, even thoughthe engine is theoretically perfectly capable of delivering the desiredpower using only the reduced number of cylinders that were being used inthe variable displacement mode. It is believed that the reason that suchvariable displacement engines kick out of the variable displacement modeso quickly is due to the perceived difficulty of controlling the engineto provide substantially the same response regardless of how manycylinders are being used at any given time.

More generally, engine control approaches that vary the effectivedisplacement of an engine by skipping the delivery of fuel to certaincylinders are often referred to as “skip fire” control of an engine. Inconventional skip fire control, fuel is not delivered to selectedcylinders based on some designated control algorithm. The variabledisplacement engines that effectively shut down cylinders that aredescribed above are essentially a class of skip fire engines. Over theyears, a number of skip fire engine control arrangements have beenproposed, however, most still contemplate throttling the engine ormodulating the amount of fuel delivered to the cylinders in order tocontrol the engine's power output.

As suggested above, most commercially available variable displacementengines shut down specific cylinders to vary the displacement indiscrete steps. Other approaches have also been proposed for varying thedisplacement of an engine to facilitate improved thermodynamicefficiency. For example, some designs contemplate varying the effectivesize of the cylinders to vary the engine's displacement. Although suchdesigns can improve thermodynamic and fuel efficiencies, existingvariable cylinder size designs tend to be relatively complicated andexpensive to produce, making them impractical for widespread use incommercial vehicles.

U.S. Pat. No. 4,509,488 proposes another approach for varying thedisplacement of an internal combustion engine. The '488 patent proposesoperating an engine in an unthrottled manner that skips working cyclesof the engine cylinders in an approximately uniform distribution that isvaried in dependence on the load. A fixed amount of fuel is fed to thenon-skipped cylinders such that the operating cylinders can work at neartheir optimum efficiency, increasing the overall operating efficiency ofthe engine. However, the approach described in the '488 patent neverachieved commercial success. It is suspected that this was partly due tothe fact that although the distribution of the skipped working strokesvaried based on the load, a discrete number of different firing patternswere contemplated so the power outputted by the engine would notregularly match the desired load precisely, which would be problematicfrom a control and user standpoint. In some embodiments, the firingpatterns were fixed—which inherently has the risk of introducingresonant vibrations into the engine crankshaft. The '488 patentrecognized this risk and proposed a second embodiment that utilized arandom distribution of the actual cylinder firings to reduce theprobability of resonant vibrations. However, this approach has thedisadvantage of introducing bigger variations in drive energy. The '488patent appears to have recognized that problem and proposed the use of amore robust flywheel than normal to compensate for the resultantfluctuations in drive energy. In short, it appears that the approachproposed by the '488 patent was not able to control the engine operationwell enough to attain commercial success.

Although existing variable displacement engines work well in manyapplications, there are continuing efforts to further improve thethermodynamic efficiency of internal combustion engines.

SUMMARY OF THE INVENTION

A variety of methods and arrangements for improving the fuel efficiencyof internal combustion engines are described. Generally, an engine iscontrolled to operate in a skip fire variable displacement mode. In thevariable displacement mode, selected combustion events are skipped sothat other working cycles can operate at better thermodynamicefficiency. More specifically, selected “skipped” working cycles are notfired while other “active” working cycles are fired. Typically, fuel isnot delivered to the working chambers during skipped working cycles.

The appropriate working chamber firings are dynamically determinedduring operation of the engine to provide a desired engine output. Invarious embodiments, the appropriate firings are determined on a firingopportunity by firing opportunity basis. In many applications, theappropriate firings are determined without reference to any pre-definedfiring patterns.

In some embodiments the controller used to determine the skip firefiring pattern includes a drive pulse generator arranged to receive aninput indicative of a desired engine output and to output a drive pulsesignal that is synchronized with the engine speed. The drive pulsesignal generally indicates when active working cycles are appropriate todeliver the desired engine output. In some implementations, the outputof the drive pulse generator may directly be used to define the firingpattern. In other embodiments, a sequencer is used to define the actualfiring pattern based at least in part on the drive pulse pattern. Theworking chamber firings may be sequenced in a manner that helps reduceundesirable vibrations of the engine.

Adaptive predictive controllers work particularly well for use incontrolling engine operations in a skip fire variable displacement mode.One class of adaptive predictive controllers that works well in thisapplication are sigma delta controllers. In some embodiments, thecontroller's clock signal is arranged to vary proportionally with theengine speed. Differential and mixed signal sigma delta controllers alsowork particularly well. In other implementations, a variety of othercontrollers including pulse width modulation (PWM), least means square(LMS) and recursive least square (RLS) controllers may be used todynamically determine the desired chamber firings.

The described approaches can be used to significantly improve the fuelefficiency of a wide variety of internal combustion engines, including2-stroke, 4-stroke and 6-stroke piston engines, rotary engines, hybridengines, radial engines, etc. The approach is applicable to engines thatoperate in accordance with a variety of different thermodynamic cyclesincluding an Otto cycle, a diesel cycle, a Miller cycle, an Atkinscycle, mixed cycles, etc.

Various described embodiments include implementations that are wellsuited for use in: (a) retrofitting existing engines; (b) new enginesbased on current designs; and/or (c) new engine designs that incorporateother developments or are optimized to enhance the benefits of thedescribed working cycle optimization. The described control may beincorporated into an engine control unit (ECU) or may be provided in aseparate processor or processing unit that cooperates with the enginecontrol unit.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention and the advantages thereof, may best be understood byreference to the following description taken in conjunction with theaccompanying drawings in which:

FIG. 1( a) is a pressure volume (PV) diagram illustrating thethermodynamic working cycle of a representative 4-stroke Otto cycleengine operating at full throttle.

FIG. 1( b) is a pressure volume (PV) diagram illustrating thethermodynamic working cycle of a representative 4-stroke Otto cycleengine operating at partial throttle. FIGS. 1( a) and 1(b) are takenfrom Engineering Fundamentals of the Internal Combustion Engine, byWillard W. Pulkrabek (2004)—ISBN 0-13-140570-5.

FIG. 2( a) is a functional block diagram that diagrammaticallyillustrates a control unit that is suitable for operating an engine inaccordance with one embodiment of the present invention.

FIG. 2( b) is a functional block diagram of the control unit of FIG. 2(a) that diagrammatically illustrates selected feedback that may be usedby the drive pulse generator in some embodiments of the presentinvention.

FIG. 2( c) is a functional block diagram of the control unit of FIG. 2(b) that diagrammatically illustrates selected feedback that may be usedby the sequencer in some embodiments of the present invention.

FIG. 3 is a block diagram of a sigma-delta control circuit based drivepulse generator suitable for use with some embodiments of the invention.

FIG. 4 is a timing diagram illustrating a representative drive pulsepattern and a set of corresponding cylinder firing patterns generated byan embodiment of a sequencer.

FIG. 5 is a timing diagram illustrating a firing pattern generated by asecond sequencer embodiment in response to the drive pulse patternillustrated in FIG. 4.

FIG. 6 is a block diagram of an engine control architecture thatincludes a firing control co-processor in accordance with one embodimentof the present invention.

FIG. 7 is a block diagram of a sigma-delta control circuit embodimenthaving a variable clock based on engine speed.

FIG. 8 is a block diagram of a sigma-delta control circuit embodimenthaving a multi-bit comparator.

FIG. 9 is a block diagram of a digital sigma-delta control circuitembodiment in accordance with another embodiment of the invention.

FIG. 10 is a graph illustrating the concentration of certain pollutantsas a function of air/fuel mixture in a conventional spark-ignitionengine.

FIG. 11 is a block diagram of an engine control architecture thatincludes a firing control co-processor in accordance with anotherembodiment of the present invention.

FIG. 12 is a block diagram of an engine controller suitable forimplementing a single cylinder modulation skip fire technique inaccordance with yet another embodiment of the present invention.

FIG. 13 is a graph illustrating the horsepower output of arepresentative variable displacement engine as a function of throttleposition using different numbers of cylinders.

FIG. 14 is a representative engine performance map for a typical USpassenger-car engine taken from: The Internal-Combustion Engine inTheory and Practice, Volume 1: Thermodynamics, Fluid Flow, Performance,2^(nd) Edition, Revised, by Charles Fayette Taylor, The MIT Press.

FIG. 15 is a block diagram of an engine control architecture thatincludes a firing control co-processor and a multiplexer in accordancewith another embodiment of the present invention.

FIG. 16 is a block diagram of an engine control architecture thatincludes a firing control co-processor and a high-voltage multiplexer inaccordance with another embodiment of the present invention.

FIG. 17 is a block diagram of a firing control co-processor inaccordance with another embodiment of the present invention.

FIG. 18 is a block diagram of an engine control system in accordancewith another embodiment of the invention that uses both feedback andfeed forward in the determination of the firing pattern.

FIG. 19( a) is a block diagram of a skip fire engine control system inaccordance with another embodiment of the invention that permitsflexible control of the desired throttle position.

FIG. 19( b) is a block diagram of a skip fire engine control system inaccordance with another embodiment of the invention.

FIG. 20( a) is a graph that illustrates the performance of a state ofthe art Honda variable cylinder management (VCM) engine while conductinga standardized engine performance test known as the US06 SupplementalFederal Test Procedure (SFTP) test.

FIG. 20( b) is a graph that models the performance of the same enginewhile conducting the same test as illustrated in FIG. 20( a) using acontroller of the type illustrated in FIG. 19( a) or (b).

FIG. 20( c) is a graph that models the performance of the same enginewhile conducting the same test as illustrated in FIGS. 20( a) and 20(b)when controlled to operate using 2, 3, 4 or 6 cylinders using acontroller of the type illustrated in FIG. 19( a) or (b).

FIG. 21 is a block diagram of a variable displacement engine statecontrol system in accordance with yet another embodiment that controlsthe operational state of the engine.

FIG. 22 is a block diagram of a representative design for an enginestate generator 710 suitable for use in the variable displacement enginecontrol system illustrated in FIG. 21.

FIG. 23 is a block diagram of another embodiment of an engine statecontroller.

FIG. 24 is a block diagram of another drive pulse generator/ECU design.

In the drawings, like reference numerals are sometimes used to designatelike structural elements. It should also be appreciated that thedepictions in the figures are diagrammatic and not to scale.

DETAILED DESCRIPTION

The present invention relates generally to methods and arrangements forcontrolling the operation of internal combustion engines to improvetheir thermodynamic and fuel efficiencies. Various aspects of theinvention relate to motorized vehicles that utilize such engine controland to engine control units suitable for implementing such control.

Most internal combustion engines are arranged to vary the amount of airand/or fuel that is delivered to the cylinders (or other workingchambers) based on the engine output that is requested by the user orotherwise required at any given time. However, the thermodynamicefficiency of a fixed size cylinder is not the same at every air/fuellevel. Rather, the thermodynamic efficiency is generally best when anoptimal amount of air and fuel is delivered to the cylinder to achievemaximum permissible compression and optimal combustion efficiency. Sinceinternal combustion engines need to be able to operate under a widevariety of different loads, the net result is that the engines tend tooperate at lower than optimal compression or air/fuel ratios andtherefore inefficiently most of the time. The present applicationdiscloses a variety of methods and arrangements for controlling theoperation of an internal combustion engine such that its workingchambers (e.g., cylinders) can operate under conditions closer to theiroptimal thermodynamic efficiency much of the time.

From a theoretical standpoint, the thermodynamic efficiency of aninternal combustion engine can be improved by only firing the cylindersat their optimal efficiency and then skipping working cycles that arenot needed. For example, if at a given time, an engine requires 30% ofthe power that would be outputted by running all of its cylinders attheir maximum compression and an optimized air/fuel ratio, then thatpower can most efficiently be generated by operating 30% of the engine'sworking cycles at their optimal efficiency while not fueling thecylinders the remaining 70% of the available working cycles. The generalbenefit of this approach was recognized by Forster et al. in U.S. Pat.No. 4,509,488.

Although the '488 patent recognized the general benefits of running someworking cycles at their maximum efficiency while skipping other workingcycles, the described approach apparently never enjoyed any commercialsuccess. It is suspected that this is due in part to the difficultiesinherent in controlling the operation of such engines. The presentapplication describes a number of engine designs and controlarrangements for effectively controlling the operation of an engine inmanners that permit some of the engine's working cycles to operate underconditions that are more efficient than would occur under conventional,all cylinder, operation of the engine, while skipping other workingcycles to improve the overall fuel efficiency of the engine. The variousdescribed embodiments include implementations that are well suited foruse in: (a) retrofitting existing engines; (b) new engines based oncurrent designs; and/or (c) new engine designs that incorporate otherdevelopments or are optimized to enhance the benefits of the describedworking cycle optimization.

Improving the thermodynamic efficiency of the engine using the describedapproaches can significantly improve the fuel efficiency of internalcombustion engines. Computer simulation models project that the fuelefficiency of the existing fleet of fuel injected automotive gas engineson the road today could be improved by on the order of 20-50% byinstalling a firing control co-processor that implements the describedtechniques and cooperates with the car's existing engine control unit(ECU), or by replacing the ECU with an ECU that implements the describedtechniques. More dramatic improvements may be possible in applicationswhere it is possible to control the fuel injection profile and/or toprovide supercharged (or turbocharged) air flow (which is possible insome vehicles currently on the road) and in applications where theengine and its controller (or a firing control co-processor) arespecifically designed to take advantage of the described techniques.

The ability to closely control the operational conditions within anengine's cylinders (or other working chambers) also opens up thepossibilities of utilizing different fuels and/or fuel compositions intraditional internal combustion engines that are not practical today dueto the need to operate the cylinders under widely varying loads.Operating the cylinders at or nearer their optimum efficiency also hasthe potential benefit of reducing the overall level of emissions ofreactive species—such as nitric oxides (NO_(x))—and other pollutantsgenerated during operation of the engine. This can be particularlyhelpful in engines that traditionally do not operate at nearstoichiometric air/fuel ratios (e.g. many conventional diesel enginedesigns).

To help appreciate the efficiency gains that can be attained using thedescribed approach, it is helpful to consider the efficiency of atypical internal combustion engine. For the purpose of this illustrationwe can discuss an Otto cycle engine (which is the engine type used inmost passenger cars on the road today). However, the advantages of thepresent invention are equally relevant to a wide variety of otherinternal combustion engines, including engines that operate using aDiesel cycle, a Dual cycle, an Atkins cycle, a Miller cycle, two strokespark ignition (SI) engine cycles, two stroke compression ignition (CI)engines, hybrid engines, radial engines, mixed cycle engines, Wankelengines, and other types of rotary engines, etc.

FIGS. 1( a) and 1(b) are PV (Pressure-Volume) diagrams illustrating thethermodynamic working cycle of a representative 4-stroke Otto cycleengine. FIG. 1( a) illustrates the performance of a cylinder at wideopen throttle where the cylinder is being used at its maximum efficiency(i.e., an optimal amount of fuel is delivered to the cylinder). FIG. 1(b) illustrates the performance of a cylinder at partial throttle. Sincethe Otto cycle is a four stroke cycle, the piston reciprocates twice(720° rotation of the crankshaft) for each working cycle of thecylinder. Therefore, each working cycle effectively forms two loops inthe PV diagram. The horizontal axis represents the volume. The range ofeach loop along the volume axis extends from a minimum volume—indicatedas TDC (top dead center)—to a maximum volume—indicated as BDC (bottomdead center). In general, the area bounded by the upper loop (A, A′)represents the amount of work that is generated by firing a cylinder,whereas the area bounded by the lower loop (B, B′) represents the energylosses that are experienced due to pumping air into and out of thecylinder (these losses are frequently referred to as pumping loses). Theoverall work that is outputted by the engine is the difference betweenthe area of the upper loop and the area of the lower loop.

Comparing the PV diagrams of a cylinder operating at full throttle and acylinder operating at partial throttle, it can be seen that the overallefficiency of the cylinder operating at partial throttle is below (andoften far below) the efficiency of the cylinder at full throttle. Thereare a number of factors that influence the operating efficiencies—butone of the biggest factors is based on the position of the throttleitself. When the throttle is partially closed, less air is provided tothe cylinder. Thus, the pressure within the cylinder when the intakevalve closes may be significantly below atmospheric pressure. When thestarting pressure within the cylinder is significantly below atmosphericpressure, the effective compression of the cylinder during that enginecycle is reduced, which significantly lowers the pressure that builds upduring the combustion stoke and reduces the amount of work generated bythe firing of the cylinder. This can be seen by comparing the area ofloop A—which is the work generated by a cylinder operating at fullthrottle—to the area of loop A′—which is the work generated by thecylinder operating at partial throttle. Additionally, the fact that thethrottle is partially closed makes it harder to draw air into thecylinder, so pumping losses increase. This can be seen by comparing thearea of loop B—which is the pumping loss experienced by the cylinderoperating at full throttle—to the area of loop B′—which is the pumpingloss experienced by the cylinder operating at partial throttle. Bysubtracting B from A and B′ from A′, it can be seen that the net workgenerated by the engine operating at full throttle is much greater thanthe net work generated by the engine operating at partial throttle—evenwhen an adjustment is made to compensate for the fact that the partialthrottle operation uses less fuel.

Although the comparison illustrated above is for an Otto cycle engine,it should be appreciated that similar types of efficiency losses areexperienced by internal combustion engines operating on otherthermodynamic cycles when they are operated at less than their optimalefficiency (which typically corresponds relatively closely tosubstantially unthrottled air delivery combined with combustion at athermodynamically optimal air/fuel ratio).

In various embodiments of the invention, the thermodynamic efficiency ofan internal combustion engine is improved by operating the engine in avariable displacement mode in which some of the working chambers areoperated at (or close to) their optimal thermodynamic efficiency whileskipping working cycles that are not needed. In other embodiments,provisions are made for operating the fired cylinders at less thanoptimal (e.g., throttled) conditions while skipping other working cyclesto improve the thermodynamic efficiency of the engine relative toconventional all cylinder operation.

Firing Control Unit

FIG. 2( a) is a functional block diagram that diagrammaticallyillustrates a control unit that is suitable for operating an engine inaccordance with one embodiment of the present invention. In the primarydescribed embodiment the controlled engine is a piston engine. However,the described control is equally applicable to other engine designs. Inthe illustrated embodiment, a firing control unit 100 includes a drivepulse generator 104 and an optional sequencer 108. An input signal 113that is indicative of a desired engine output is provided to the drivepulse generator 104. The drive pulse generator 104 can be arranged touse adaptive predictive control to dynamically calculate a drive pulsesignal 110 that generally indicates when cylinder firings are requiredto obtain the desired output. As will be discussed in more detail below,the controller may be synchronized with the engine speed (input signal116) so that the generated drive pulse pattern is appropriate to deliverthe power desired at the current engine speed—which may be constantlychanging. The drive pulse signal 110 may be used to directly drive theengine or it may be provided to a sequencer 108 that further orders thepulses to provide the final cylinder firing pattern 120.

When present, the sequencer 108 is arranged to order the firings in amanner that conforms with the requirements of a specific engine and/orhelps prevent excessive or inappropriate vibration within the engine. Asis well known in the engine design field, the order that cylinders arefired can have a significant effect on vibrations within many engines.Therefore, the sequencer may be designed to help ensure that vibrationsgenerated by the operation of the engine are within design tolerances.Early experiments have suggested that in many applications, thesmoothest operation or at least sufficiently smooth operation may beobtained without the use of a dedicated sequencer. In such applications,the sequencer may be eliminated and the drive pulse signal 110 itselfmay be used to dictate the actual firing pattern. However, it issuspected that there will be applications where it may be desirable toprovide a dedicated sequencer.

In a first described implementation, each cylinder that is fired isoperated at or near its optimal thermodynamic efficiency. That is, airand fuel are introduced into the cylinder in amounts that allow the mostwork to be obtained from the cylinders per unit of fuel burnt whilestill meeting other constraints on the engine (such as emissionsrequirements, the effects of the combustion on engine life, etc.). Inmost throttled engines, this is relatively close to (but not always at)a “full throttle” position, which permits the most air to be introducedto the cylinder. Many vehicles include engine control units (ECUs) thatdetermine (among many other things) the desired air/fuel ratios and theamount of fuel to be injected for each cylinder firing. Often the ECUshave lookup tables that identify the desired air fuel ratios and/or fuelinjection amounts for a number of different operating conditions (e.g.,different manifold pressures, engine speeds, the gear the vehicle is in,etc.) based on various current ambient conditions (including airpressure, temperature, humidity etc.). In such vehicles, the amount offuel that the firing control unit causes to be injected into eachcylinder in the continuously variable displacement mode may be the valuestored in the fuel injection lookup table for operating the cylinder inan optimal manner under the current conditions.

The desired output signal 113 may come from any suitable source that canbe considered a reasonable proxy for a desired engine output. Forexample, the input signal may simply be a signal indicative ofaccelerator pedal position taken directly or indirectly from anaccelerator pedal position sensor. Alternatively, in vehicles that donot have electronic accelerator position sensors but have a throttle, asignal indicative of desired throttle position may be used in place ofthe accelerator position signal. In vehicles that have a cruise controlfeature, the input signal 113 may come from a cruise controller when thecruise control feature is active. In still other embodiments, the inputsignal 113 may be a function of several variables in addition toaccelerator position. In other engines, that have fixed operationalstates, the input signal 113 may be set based on a particularoperational setting. In general, the desired output signal may come fromany suitable source that is available in the vehicle or engine beingcontrolled.

The drive pulse generator 104 is generally arranged to determine thenumber and general timing of cylinder firings that are required togenerate the desired output given the current operating state andoperating conditions of the engine. The drive pulse generator usesfeedback control, such as adaptive predictive control to determine whencylinders must be fired to deliver the desired engine output. Thus, thedrive pulse signal 110 outputted by the drive pulse generator 104effectively indicates the instantaneous displacement required by theengine to deliver the desired engine output. The displacement requiredby the engine will vary with operating conditions and can be based onboth what has happened in the past and what is predicted for theimmediate future. In various embodiments, the drive pulse generator 104is generally not constrained to limit fluctuations in the number ofcylinder firings that are required per revolution of the crankshaft todeliver the desired output. Thus, the effective displacement of theengine can be continuously varied by selecting which cylinders to fireand which cylinders not to fire, on a firing opportunity by firingopportunity basis. This is very different than conventional commerciallyavailable variable displacement engines where rapid fluctuations betweendifferent displacements, and particularly different cylinder firingpatterns, are considered undesirable (see, e.g., U.S. Pat. No.5,408,974). This ability to continuously vary the effective displacementof the engine is sometimes referred to herein as a continuously variabledisplacement mode of operation.

A variety of different control schemes can be implemented within thedrive pulse generator 104. Generally, the control schemes may beimplemented digitally, algorithmically, using analog components or usinghybrid approaches. The drive pulse generator may be implemented on aprocessor, on programmable logic such as an FPGA, in circuitry such asan ASIC, on a digital signal processor (DSP), using analog components,or any other suitable piece of hardware.

One class of controllers that is particularly well suited for use in thedrive pulse generator is adaptive predictive controllers. As will beappreciated by those familiar with control theory, adaptive predictivecontrollers are adaptive in that they utilize feedback to adapt orchange the nature of their output signal based on the variance of theoutput signal from a desired output signal and predictive in that theyare integrative so that past behavior of the input signal affects futureoutput signals. Such controllers are also arranged to significantlyoversample the input signal so that the output closely tracks the inputsignal.

A variety of different adaptive predictive controllers may be used tocalculate the chamber firings required to provide the desired output.One class of adaptive predictive controllers that work particularly wellin this application is sigma delta controllers. The sigma deltacontroller may utilize sample data sigma delta, continuous time sigmadelta, algorithm based sigma delta, differential sigma delta, hybridanalog/digital sigma delta arrangements, or any other suitable sigmadelta implementation. In some embodiments, the sigma delta controller'sclock signal is arranged to vary proportionally with the engine speed.In other implementations, a variety of other adaptive predictivecontrollers including pulse width modulation (PWM), least means square(LMS) and recursive least square (RLS) controllers may be used todynamically calculate the required chamber firings.

The drive pulse generator 104 preferably uses feedback control indetermining when drive pulses are appropriate to deliver the desireengine output. Components of the feedback may include feedback of thedrive pulse signal 110 and/or feedback of the actual cylinder firingpattern 120 as generally illustrated in FIG. 2( b). Since the drivepulse signal 110 indicates when working chamber firings are appropriate,it may generally be thought of as a signal indicative of requestedfirings. If present, a sequencer then determines the actual timing ofthe requested firings. If no sequencer is used, the drive pulse signal110 itself dictates the actual firing pattern. When desired, theinformation fed back from the actual firing pattern may includeinformation indicative of the firing pattern itself, the timing of thefirings, the scale of the firings (e.g., the output or torque generatedby each firing) and/or any other information about the cylinder firingsthat is desired by or useful to the drive pulse generator 104.Generally, it is also desirable to provide the drive pulse generator 104with an indication of the engine speed 116 so that the drive pulsesignal 110 can generally be synchronized with the engine.

Various feedback may also be provided to the sequencer 108 as desired.For example, as illustrated diagrammatically in FIG. 2( c), feedback ormemory indicative of actual firing timing and/or pattern 120 may beuseful to the sequencer to allow it to sequence the actual cylinderfirings in a manner that helps reduce engine vibrations.

Sigma-Delta Control Circuit

Referring next to FIG. 3, one implementation of a sigma-delta controlbased drive pulse generator 104 will be described. The drive pulsegenerator 104 includes a sigma-delta controller 202 and a synchronizer240. The sigma-delta controller 202 utilizes principles of sigma-deltaconversion, which is a type of oversampled conversion. (Sigma-deltaconversion is also referred to as delta-sigma conversion.) The basictheory of sigma-delta conversion has been described in what is commonlyreferred to as a seminal reference on the subject: H. Inose, Y. Yasuda,and J. Murakami, “A Telemetering System by Code Modulation: Δ-ΣModulation,” IRE Transactions on Space Electronics Telemetry, Vol.SET-8, September 1962, pp. 204-209. Reprinted in N. S. Jayant, WaveformQuantization and Coding, IEEE Press and John Wiley, 1976, ISBN0-471-01970-4.

The illustrated sigma-delta control circuit 202(a) is an analog thirdorder sigma-delta circuit generally based on an architecture known asthe Richie architecture. Sigma-delta control circuit 202(a) receives ananalog input signal 113 that is indicative of a desired output (whichmight be thought of as desired work output or desired torque). Sincesigma-delta controllers of the type illustrated are generally known andunderstood, the following description sets forth the generalarchitecture of a suitable controller. However, it should be appreciatedthat there are a wide variety of different sigma-delta controllers thatcan be configured to work very well for a particular implementation.

In the illustrated embodiment, the input signal 113 is indicative ofaccelerator pedal position (although as described above, other suitableinput signals indicative of, or proxies for, desired output may be usedas well). The input signal 113 is provided as a positive input to thesigma-delta control circuit 202(a), and particularly to a firstintegrator 204. The negative input of the integrator 204 is configuredto receive a feedback signal 206 that is a function of the output suchthat the operation of the sigma delta control circuit 202(a) isadaptive. As will be described later, the feedback signal 206 mayactually be a composite signal that is based on more than one outputstage. The integrator 204 may also receive other inputs such as dithersignal 207 which also will be described in more detail below. In variousimplementations some of the inputs to integrator 204 may be combinedprior to their delivery to the integrator 204 or multiple inputs may bemade directly to the integrator. In the illustrated embodiment, thedither signal 207 is combined with the input signal 113 by an adder 212and the combined signal is used as the positive input. The feedbacksignal 206 is a combination of feedback from the output of the sigmadelta control circuit and the controlled system, which in theillustrated embodiment is shown as feedback representing either thedrive pulse pattern 110 or the actual timing of the firings or acombination of feedback from both.

The sigma delta control circuit 202(a) includes two additionalintegrators, integrator 208 and integrator 214. The “order” of the sigmadelta control circuit 202(a) is three, which corresponds to the numberof its integrators (i.e., integrators 204, 208 and 214). The output ofthe first integrator 204 is fed to the second integrator 208 and is alsofed forward to the third integrator 214.

The output of the last integrator 214 is provided to a comparator 216that acts as a one-bit quantizer. The comparator 216 provides a one-bitoutput signal 219 that is synchronous with a clock signal 217.Generally, in order to insure very high quality control, it is desirablethat the clock signal 217 (and thus the output stream of the comparator216) have a frequency that is many times the maximum expected firingopportunity rate. For analog sigma delta control circuits, it istypically desirable for the output of the comparator to oversample thedesired drive pulse rate by a factor of at least about 10 andoversampling factors on the order of at least about 100 workparticularly well. That is, the output of the comparator 216 ispreferably at a rate of at least 10 times and often at least 100 timesthe rate at which engine firing opportunities occur. The clock signal217 provided to the comparator 216 may come from any suitable source.For example, in the embodiment shown in FIG. 3, the clock signal 217 isprovided by a crystal oscillator 218.

It should be appreciated that these clock rates are actually relativelyslow for modern digital electronic systems and are therefore readilyobtainable and usable. For example, if the controlled engine is aeight-cylinder engine that operates using a four stroke working cycle,then the maximum firing opportunity rate expected might be something onthe order of 8,000 RPM×8 cylinders×½. The factor of ½ is providedbecause, in a normally-operating four-cycle engine, each cylinder has afiring opportunity only once every two revolutions of the enginecrankshaft. Thus, the maximum expected frequency of firing opportunitiesmay be approximately 32,000 per minute, or about 533 per second. In thiscase, a clock operating at about 50 kHz would have nearly 100 times themaximum expected rate of firing opportunities. Therefore, a fixed clockhaving a clock frequency of 50 kHz or greater would work very well inthat application.

In other embodiments, the clock used to drive the comparator may be avariable clock that varies proportionally with engine speed. It isbelieved that the use of a variable speed clock in a sigma deltacontroller is different than conventional sigma delta controller designand has a wide variety of applications outside of the engine controlapplication described herein. The fact that the variable speed clock isbased on a characteristic of the driven system (in this case, therotational speed of the controlled engine) is particularly powerful. Theuse of a variable speed clock has the advantage of insuring that theoutput of the comparator is better synchronized with the engine speedand thus the firing opportunities. The clock can readily be synchronizedwith the engine speed by utilizing a phase lock loop that is driven byan indication of engine speed (e.g., a tachometer signal). Some of theadvantages of using a variable speed clock that is based on engine speedwill be discussed further below with respect to FIG. 7. It should beappreciated that similar uses of a variable speed clock based on thedriven system is believed to have application in a number of otherfields, as for example, in various audio applications.

The one-bit output signal 240 outputted from the comparator 216 isgenerated by comparing the output of the integrator 214 with a referencevoltage. The output is effectively a string of ones and zeros that isoutputted at the frequency of the clock. The output 240 of thecomparator 216 (which is the output of the sigma delta control circuit202(a)) is provided to a synchronizer 222 that is arranged to generatethe drive pulse signal 110. In the illustrated embodiment, the sigmadelta control circuit 202(a) and the synchronizer 222 togetherconstitute a drive pulse generator 104 (FIG. 2).

The synchronizer 222 is generally arranged to determine when drivepulses should be outputted. The drive pulses are preferably arranged tomatch the frequency of the firing opportunities so that each drive pulsegenerally indicates whether or not a particular working cycle of aworking chamber should be exercised. In order to synchronize the drivepulse signal 110 with the engine speed, the synchronizer 222 in theembodiment illustrated in FIG. 3 operates using a variable clock signal230 that is based on engine speed. A phase-locked loop 234 may beprovided to synchronize the clock with the engine speed. Preferably, theclock signal 230 has a frequency equal to the desired frequency of theoutputted drive pulse signal 110. That is, it is preferably synchronizedto match the rate of firing opportunities.

The output signal 240 of the sigma-delta control circuit is generally adigital representation of the analog input signal 113 that is receivedby the sigma-delta control circuit 202(a). Because (a) the input signalis effectively treated as a desired output, or a desired work output,and (b) the combustion within the working chambers is controlled suchthat a generally known and relatively constant amount of work isproduced by each engine firing—when the digital output signal 240 fromthe sigma delta control circuit 202(a) contains a certain number of“high” symbols it is appropriate to generate a positive drive pulse(i.e., to order the firing of a working chamber). Thus, conceptually, apurpose of the synchronizer 222 can be thought of as being to count thenumber of high symbols in the output signal and when enough symbols arecounted, sending a drive pulse that is synchronized with the enginespeed. In practice, true counting is not actually required (although itcan be done in some implementations).

Another characteristic of the output of the described sigma-deltacontrol circuit with a high oversampling rate when used in this type ofengine control application is that the controller tends to emit longblocks of high signals followed by blocks of low signals. Thischaracteristic of the output signal 240 can be used to simplify thedesign of the synchronizer 222. In one implementation, the synchronizermerely measures the length (i.e., time or period) of the blocks of highsignals emitted in output signal 240. If the length of the block of highsignals exceeds a designated threshold, a drive pulse is generated. Ifthe length of a block of high signals doesn't exceed the threshold—nodrive pulses are generated based on that block of high signals. Theactual thresholds that are used can be widely varied to meet the needsof a particular design. For example, in some designs the threshold canbe the period of the clock signal 230 which (since the clock issynchronized with the engine speed) corresponds to the duty cycle of thedrive pulse pattern 110 and the average delay between working chamberfiring opportunities. With this arrangement, if the length of a block ofhigh signals is less than one duty cycle, no drive pulses are generatedcorresponding to the block; if the length of the block exceeds one dutycycle and is less than two duty cycles, then one drive pulse isgenerated; if it exceeds two duty cycles but is less than three dutycycles, then two sequential drive pulses are generated; and so on.

It should be appreciated that with this arrangement, the “length” ortime duration of a burst of high outputs from the sigma-delta controlcircuit will have to be longer in order to trigger a drive pulse whenthe engine speed is low than the length of a burst would need to be inorder to trigger a drive pulse when the engine speed is high. That isbecause the duty cycle of the drive pulse signal is longer at lowerengine speeds.

In other implementations, the threshold may be set differently. Forexample, the thresholds might be set such that any block of high outputshaving a length that exceeds some designated percentage (e.g., 80 or 90percent) of the duty cycle of the drive pulse signal causes a drivepulse to be generated, while shorter pulse lengths are effectivelytruncated.

At first review it may seem that ignoring portions of pulses in themanner suggested above could degrade the performance of the controlsystem to an unacceptable level. However, for many engines, the highfrequency of the firing opportunities and the responsiveness of thecontrol system in general make it perfectly acceptable to use suchsimple synchronizers. Of course, it should be appreciated that a widevariety of other synchronization schemes can be used as well.

As mentioned above, the sigma-delta control circuit is arranged toprovide feedback to the first integrator. In the illustrated embodiment,the feedback signal 206 is a composite of: (a) feedback from the output240 of the comparator 216; (b) the drive pulse pattern 110 outputted bythe synchronizer 222; and/or (c) (when different than the drive pulsepattern) the actual firing pattern 120. A combiner 245 is arranged tocombine the feedback signals in the desired ratios. The relative ratiosor weights given to the various feedback signals that are fed back tothe first integrator 204 may be varied to provide the desired control.

It should be appreciated that although the comparator output, the drivepulse signal and the actual firing pattern are all related—their timingwill vary and the general magnitude of the comparator output may differfrom the others. The most accurate feedback in terms of reflectingactual engine behavior is the firing pattern—however, there can besignificant time delays (from the standpoint of the sigma-delta controlcircuit 202) between the output of the comparator and the actual firingof a working chamber—particularly if a sequencer is provided thatcreates a firing pattern that is potentially different than the drivepulse pattern. The next best feedback in terms of reflecting actualengine behavior is the drive pulse signal. Thus, in many implementationsit will be desirable to heavily weight the feedback towards the drivepulse signal and/or the firing pattern. However, in practice, theperformance of the sigma delta controller can often be enhanced byfeeding back some portion of the comparator output signal 240. By way ofexample, in some implementations, weighting the feedback of thecomparator output signal 240 at in the range of 15-25% of the totalfeedback signal 206 with the remainder being a reflection of the drivepulse signal or the firing pattern or a combination of the two shouldwork appropriately. Of course, these ratios are just exemplary and theappropriate, preferred and optimal feedback percentages will vary inaccordance with the particular implementation of the firing control unit100 and the associated engine.

In some embodiments, it may be desirable to anti-aliasing filter theinput signal 113 and the feedback signal 206. The anti-aliasingfunctionality can be provided as part of the sigma-delta control circuit202 or it may be provided as an anti-aliasing filter that precedes thesigma delta control circuit or it may be provided in any other suitableform. In the third order analog continuous time sigma-delta controlcircuit 202(a) illustrated in FIG. 3, the first integrator 204 providesthe anti-aliasing functionality. That is, it effectively acts as a lowpass filter.

Another known characteristic of sigma delta controllers is that theysometimes generate “tones” which are cyclic variations in the outputsignal relative to the input signal. Such tones are particularlynoticeable when the analog input signal 113 varies slowly, which isoften the case when driving and in many other engine controlapplications. The presence of such tones within the comparator outputsignal 240 may be reflected in the engine firing pattern. In somesituations, there is a risk that such cyclic variations in the drivepattern can generate undesirable resonances within the engine which maygenerate undesirable vibration patterns. In extreme cases, the tonescould even be manifested as a noticeable fluctuation in drive energy.Accordingly, various arrangements may be provided in an effort to helpprevent and/or break up such tones.

One option that can help prevent and/or break up tones in thesigma-delta controller output is to introduce a noise signal into thecontroller that averages to zero over time, but whose local variationstend to break up the tones in the output signal of the sigma deltacontroller. In signal processing applications such a noise signal isoften referred to as “dither.” The dither signal can be introduced atvirtually any location within the control loop. In the embodimentillustrated in FIG. 3 the adder 212 combines the input signal 113 withsuch a dither signal 246. However, the dither signal may be introducedat other convenient locations as well. For example, in sigma deltacontrollers, dither is often introduced to the last stage before thequantizer (e.g., introduced into integrator 214 in the embodimentillustrated in FIG. 3).

In the illustrated embodiment, a pseudo-random dither generator (PRD)226 is employed to generate the dither signal, but it should beappreciated that dither can be introduced using a wide variety of otherapproaches as well. The dither may be generated algorithmically usingsoftware or by a discrete dither logic block, or other suitable means orit may be taken from any other suitable source that is available to thecontroller.

The output of the synchronizer 222 is the drive pulse signal 110discussed above with respect to FIG. 2. As discussed above, the drivepulse signal 110 effectively identifies the cylinder firings (orinstantaneous effective engine displacement) that is needed to providethe desired engine output. That is, the drive pulse signal 110 providesa pattern of pulses that generally indicates when cylinder firings areappropriate to provide the desired or requested engine output. Intheory, the cylinders could be fired directly using the timing of thedrive pulse signal 110 outputted by the synchronizer 222. However, inmany cases it will not be prudent to fire the cylinder using exactly thesame timing as pulse pattern 110 because this could generate undesirablevibrations within the engine. Accordingly, the drive pulse signal 110may be provided to a sequencer 108 which determines an appropriatefiring pattern. The sequencer 108 is arranged to distribute the cylinderfirings called for in a manner that permits the engine to run smoothlywithout generating excessive vibrations. The control logic used by thesequencer 108 to sequence the cylinder firings may be widely varied andthe sophistication of the sequencer will depend in large part on theneeds of a particular application.

Sequencer

Referring next to FIG. 4 the operation of a relatively simple embodimentof sequencer 108 will be described that is suitable for manyapplications. Piston engines in use today operate their cylinders in afixed sequence. For the purposes of illustration, consider a standardfour-cylinder engine. The four cylinders are labeled “1,” “2,” “3” and“4” by the order in which they would be fired in “normal” operation ofthe engine (i.e., operation without control to skip working cycles ofthe engine). It should be appreciated that this order may not, andgenerally does not, coincide with the physical placement of thecylinders in the engine. The simple sequencer 108(a) may be configuredto fire the cylinders in exactly the same order that they would be firedin normal operation. That is, if cylinder #1 is fired, then the nextcylinder fired will be #2, then #3, #4, #1, #2, #3, #4, #1, etc.

FIG. 4 is a timing diagram that illustrates a possible drive pulsesignal 110(a) inputted to the sequencer 108, the corresponding firingpatterns 120(a)(1), 120(a)(2), 120(a)(3), and 120(a)(4), outputted bythe sequencer for each of the cylinders, and the composite firingpattern 120(a) outputted by the sequencer. The signals are all clockedat the rate of cylinder firing opportunities, which is twice the RPMwith a 4 cylinder, 4-stroke engine. In the pattern illustrated in FIG. 4the inputted drive pulse signal calls for a first cylinder firing D1,then two skips (S1, S2), a second firing D2, another skip (S3), a thirdfiring D3, two more skips (S4, S5), a fourth firing D4 and three moreskips (S6-S8). Since cylinder #1 is available when the first firing D1is requested, it is fired as indicated by F1 in pattern 120(a)(1). Thenext two firing opportunities (cylinders #2 & #3) are skipped inaccordance with skips S1 and S2 in the input pulse pattern 110(a). Thesecond firing D2 is requested at a time when only cylinder #4 isavailable—but assuming that the sequencer 108(a) is designed to fire thecylinders in a designated (e.g. normal or conventional) order, it firescylinder #2 the next time it is available as seen in pattern 120(a)(2)(this corresponds to overall firing opportunity #6). Thus D2 iseffectively delayed until cylinder #2 is available and no othercylinders are fired before cylinder #2 comes around, regardless ofwhether additional firings are requested as can be seen as firing F2 inpattern 120(a)(2).

The drive pulse input signal 110(a) called for a third firing D3 at thesixth firing opportunity. The sequencer 108 allocates this firing tocylinder #3 which is not yet available (only cylinder #2 is thenavailable) so F3 is delayed until cylinder #3 becomes available—which inthe illustrated example is the next firing opportunity. The sequencer108(a) continues to operate using this approach throughout operation inthe variable displacement mode. It should be appreciated that the numberof firings F instructed by the sequencer 108(a) are identical to thenumber of drive pulses D received—only the timing has been variedslightly in order to help balance the engine and more uniformly utilizeeach of the cylinders over time. It is believed that even this verysimple sequencer logic will suffice to adequately balance the engine inmany implementations that utilize the described sigma-delta controlcircuit 202 due to the pseudo-randomness of the drive pulse signal 110generated by the sigma-delta controller. This is particularly true whena reasonable dither is fed into the combiner 212. The fact that thefiring pattern 120 is not exactly the same as the drive pulse signal 110generated by the drive pulse generator 104 may further help break up anytones that might be generated by the drive pulse generator 104.

It is noted that delaying the cylinder firing relative to the drivepulses theoretically makes the engine slightly less responsive tochanges in the accelerator pedal position than would be the case if thedrive pulses were used to directly control the cylinder firing. However,in practice, this delay may be inconsequential. For example, in a fourcylinder engine operating at 3000 RPM, there are 6000 firingopportunities a minute—one hundred a second. Thus, the maximumdelay—which would be three firing cycles—would be approximatelythree-hundredths of a second. Given the cylinder firing rates and theoverall mass of the vehicle relative to the energy provided by onefiring, delays of this scope will generally be imperceptible to theoperator in motor vehicle applications.

A constraint on the first embodiment of the sequencer discussed above isthat the cylinders are fired in a fixed order—even when firingopportunities are skipped. However, this is not a requirement in allengine designs. In many applications, it may be perfectly acceptable tohave varying firing sequences. For example, in some implementations itmight be appropriate to constrain the sequencer to specific “followpatterns.” That is, after a particular cylinder is fired, only a set ofdesignated cylinders may be fired next. For example, in an 8-cylinderengine, it may be perfectly acceptable for cylinder 2 or cylinder 6 tofollow cylinder 1, and either cylinder 3 or 7 to follow cylinder 2, etc.(In practice even more varied follow patterns can often workeffectively). It should be apparent that the sequencer logic can readilybe configured to permit these types of fixed firing sequenceconstraints. By way of example, FIG. 5 illustrates a firing pattern120(b) generated by a second embodiment of the sequencer which allowscylinders 2 or 4 to follow 1 or 3 and vice versa. The firing pattern120(b) is generated from the same drive pulse signal 110(a) asillustrated in FIG. 4. It can be seen although the same number ofcylinder firings are generated in both embodiments, their respectivetiming may differ due to differences in the sequencer logic. The actualfollow patterns that are appropriate for a particular engine will behighly dependent on the nature of the engine design (e.g., V-block orin-line; number of cylinders, rotational offset of the pistons, etc.),and the vibration analyses necessary to make these determinations arewell understood.

Of course, the sequencer 108 can be designed to integrate moresophisticated follow patterns. For example, the last two, three or morefirings may be considered in determining which cylinders are availablefor firing next. In other embodiments, the follow patterns may be afunction of engine speed and/or other factors as well.

In still other embodiments, the sequencer 108 does not need to beconstrained to specific follow patterns. Rather, the firing pattern canbe determined or calculated using any criteria that are appropriate forthe engine being controlled. The sequencer 108 may include memory tofacilitate more sophisticated analysis and/or may be adapted orprogrammed to recognize and interrupt undesirable firing patterns thatare known to or likely to introduce undesirable vibration into theengine operation. Alternatively or additionally, the sequencer mayemploy real time vibration analysis that takes into account a variety offactors that might be considered appropriate—including, for example, therotational speed of the engine, the presence and/or effects of skippedor partial energy working cycles, etc. to appropriately sequence thenecessary cylinder firings.

The sequencer can also be designed to address any other design criteriathat are deemed important or desirable for a particular engine. Forexample, to help prolong engine life, it might be desirable to designthe sequencer such that all of the working chambers are firedsubstantially the same amount over time during operation in the variabledisplacement mode.

As will be apparent to those with experience in electronic control, thelogic of the described sequencers can very readily be implemented indigital logic, algorithmically, using analog components or in a varietyof combinations of these approaches. Although only a few sequencerlogics have been described, it should be appreciated that the logic ofthe sequencer 108 may be very widely varied to meet the needs of anyparticular implementation.

Optimized Firings and Air/Fuel Ratios

Many engines are characterized by engine performance maps which modelthe characteristics of the engine at different engine speeds, loads andother operating conditions. A feature of the described control is thatthe amount of fuel delivered during each chamber firing can be arrangedto match any desired point on the engine performance map. In somecircumstances it may be desirable to provide a lean air/fuel ratio,while in others it may be desirable to provide a rich air/fuel ratio.

In most conventional engines, the actual amount of air and fueldelivered to a working chamber is a function of the engine's currentoperational state. The amount of fuel delivered to a working chamberduring a particular working cycle will depend heavily on the amount ofair that is delivered to the working chamber. It will also depend inpart on the desired air/fuel ratio. The actual amount of air deliveredto a chamber during a particular working cycle will vary depending onoperational and environmental factors such as manifold air pressure(which is influenced by throttle position), current engine speed, valvetiming, inlet air temperature, etc. Generally, the amount of airdelivered to a cylinder at a particular throttle position will be lessat high engine speeds than it is at low engine speeds in part becausethe intake valve tends to be open for a shorter period of time when theengine is operating a high RPM.

Modern engine control units receive inputs from a number of sensors thatpermit the engine control unit (ECU) to monitor the operational state ofthe engine. By way of example, the sensors may include a mass of airflow sensor (MAF sensor), an ambient air temperature sensor, an enginecoolant temperature sensor, a manifold air pressure (MAP) sensor, anengine speed sensor, a throttle position sensor, an exhaust gas oxygensensor, etc. The ECU interprets the sensor inputs in order to calculatethe appropriate amount of fuel to be injected and controls engineoperation by manipulating the fuel and/or air flow. The actual amount offuel injected depends on the engine's operational state andenvironmental conditions including variables such as engine and ambienttemperatures, engine speed and workload, manifold pressure, throttleposition, exhaust gas composition, etc. Generally, an extensive amountof effort and analysis is undertaken in order to define an optimal ordesired amount of fuel to be provided to cylinders under differentoperational conditions. Often these efforts result in the development ofmulti-dimensional maps that define the appropriate amount of fuel to beinjected for specific operating conditions. The fuel injection maps areoften reflected in lookup tables stored in the ECU. The ECU then usesthe lookup tables to determine the appropriate amount of fuel to injectinto a working chamber based upon the current operational state of theengine.

When developing the fuel injection maps, a variety of factors may beconsidered in determining the optimal (or otherwise desired) amount offuel to deliver for a given amount of air introduced to the cylinder.These factors may include the effects on fuel efficiency, power output,emissions control, fuel ignition, etc. These analyses necessarily haveto make some estimates and/or assumptions regarding relevant factorsthat may not be precisely known or controllable (e.g., properties of thefuel such as the octane or energy content of the fuel). Therefore, the“optimized” amount of fuel that is delivered for a given amount of airand/or the optimized air/fuel ratios are not fixed values. Rather, theymay vary between engines and/or between operational states of the sameengine based on the performance parameters that are considered importantfor that engine or operational state. These design choices are typicallyreflected in the fuel injection maps utilized by the ECUs. Further, manyECUs are designed to dynamically adjust the air/fuel ratios based onfeedback received from various sensors such as the exhaust gas lambda(oxygen) sensor.

The same considerations may be taken into account when operating in thecontinuously variable displacement mode. In some implementations, thethrottle position in the continuously variable displacement mode will besubstantially fixed (e.g., wide open or close to wide open). However,this is not always the case and it should be appreciated that the actualmass of the air that is introduced into the working chamber will notalways be the same even when the air delivery is unthrottled due todifferences in the operational state of the engine and environmentalconditions. For example, at higher engine speeds, less air may actuallyenter a cylinder during a particular working cycle than would enter thesame cylinder at lower engine speeds. Similarly, at sea level, more airwill typically enter a cylinder than would occur at high elevations atthe same engine speed. Valve timing and other factors will affect theamount of air introduced into the cylinder as well. Preferably, thesefactors are taken into account when determining how much fuel to deliverduring any particular working cycle. Further, factors such as thedesired air/fuel ratio may be taken into account when determining theamount of fuel to deliver. The desired air/fuel ratio may also varydynamically based on the operational state of the engine. In somecircumstances, it may be desirable to use lean air/fuel mixtures,whereas in other operational states it may be desirable to utilizericher air/fuel mixtures.

The determination of the amount of fuel to deliver during any particularoptimized firing can readily be accomplished by using the same (or moresimplified) types of fuel injections maps that are used today. Whenretrofitting existing engines, the existing fuel injection maps cantypically be used for this purpose. Of course, as the technologydevelops it may be desirable to develop fuel injection maps specificallytailored for operation in the continuously variable displacement mode orto utilize analytical or computational methods to determine theappropriate amount of fuel to deliver.

Therefore, it should be appreciated that the actual amount of fuel thatis injected during each working cycle is generally not an absolute andfixed number (although that is possible and indeed desirable in someimplementations). Rather, it is preferably an amount that is optimizedfor the current operational state of the engine. As suggested above,when we refer to an “optimized” amount of fuel—we don't necessarily meanthat the amount is optimized for any particular variable (e.g., fuelefficiency, power, thermodynamic efficiency, environmental concerns).Rather, it may be an amount of fuel that is deemed appropriate for aparticular operational state. The optimized quanta of fuel may beprovided in a lookup table, calculated dynamically, or determined in anyother suitable manner. When lookup tables are provided, the actualquanta of fuel delivered may be adjusted relative to the value providedby the lookup table based on emissions or other feedback received by theECU.

In some implementations it will also be desirable to more affirmativelycontrol the amount of air that is introduced to the cylinders. To helpillustrate some of the benefits of controlling the amount of airdelivered to the cylinders, reference is made to the performance map fora typical conventional passenger car illustrated in FIG. 14. The figureillustrates both the brake specific fuel consumption (BSFC) and theengine output as a function of the brake mean effective pressure (BMEP)and the piston speed (which directly corresponds to engine speed). Thelower the fuel consumption (BSFC) the better the fuel economy of theengine. As can be seen by the graph, the optimal fuel efficiency for theengine represented in FIG. 14 is found in the operational range labeled50 on the graph. It can be seen that this is at a throttle positionslightly less than full throttle with the engine operating within arelatively narrow range of engine speeds. Thus, it should be appreciatedthat the optimal operating conditions for a particular engine may not beat full throttle and therefore, in throttled engines, it may bedesirable to adjust the throttle setting to something less than fullthrottle to obtain better fuel efficiency or to obtain other desiredperformance characteristics.

It is noted that FIG. 14 illustrates the brake specific fuel consumption(BSFC) for a typical automotive engine. BSFC is a traditional measure offuel efficiency for throttled engines operated in a conventional manner.When an engine is operated in a skip fire mode, it will often bepreferable to optimize for indicated specific fuel consumption (ISFC) asopposed to BSFC. Indicated specific fuel consumption has an inverserelationship with thermodynamic efficiency so optimizing for a maximumthermodynamic efficiency is understood to be the same as optimizing fora minimum indicated specific fuel consumption. It is understood that aperformance map that charts ISFC as opposed to BSFC may look fairlysimilar to the BSFC performance chart, however the optimized zones maybe somewhat different.

As will be appreciated by those familiar with the art, a number offactors will influence the overall efficiency and performance of anengine. One important factor is the amount of air actually delivered tothe cylinders. In throttled engines, the amount of air delivered to thecylinders can be modulated using the throttle. Some engines also permitdynamic adjustment of the valve timing which provides further controlover the amount of air delivered to the cylinder during active workingcycles. Still other engines incorporate turbochargers, superchargers orother mechanisms to further increase or otherwise alter the amount ofair delivered to a cylinder during a particular working cycle. Whendesired and available, any one or combination of the throttle, valvetiming or other devices that affect air delivery to the cylinders may beset, optimized or controlled to help optimize the cylinder firings. Itshould also be appreciated that the most fuel efficient (or otherwiseoptimized) settings of the throttle, valve timing, etc may vary based onoperational condition of the engine. Accordingly, it may sometimes bedesirable to adjust the settings (e.g. the throttle setting) duringoperation of the engine to further improve engine performance. Forexample, it is understood that in some engines, the most efficientthrottle position may vary slightly with the rotational speed of theengine and other factors. In such engines it may be desirable toslightly adjust the throttle position as a function of engine speed orother appropriate factors. By way of example, it is well understood thatintake manifold pressure has a significant impact on the efficiency ofany particular cylinder firing. Thus, it may be desirable to control thethrottle in a manner that maintains a substantially constant intakemanifold pressure.

It is noted that this type of throttle modulation is quite differentthan the throttle modulation utilized during conventional operation of athrottled engine. In conventional operation, the throttle is the primarymechanism used to modulate the output of the engine. The throttle isopened more to provide additional power, and closed more to reduceengine output. In contrast, the described adjustments of throttleposition are used to help optimize the firings—and the power output ofthe engine is primarily controlled using the skip fire techniquesdescribed herein.

In addition to optimizing the air and fuel delivery, there are othervariables that affect the performance of an engine. For example, it iswell understood that in spark ignition engines, the timing of the sparkplugs firings can affect both the thermodynamic efficiency of thecylinder firings and the corresponding emissions profile. Manyautomotive engines are able to adjust the timing of the spark plugfirings during operation of the engine. If such control is available,the timing of the spark plug firings can also be adjusted to helpoptimize the firings. As will be appreciated by those familiar with theart, it is generally desirable to advance the spark when the engine iscolder and retard the spark when the engine is warmer. The spark timingmay also vary with the rotational speed of the engine and/or otherfactors.

As discussed elsewhere in this application, when an engine is run in askip fire mode, there may be non-trivial variations in the temperatureof different cylinder due to such factors as the firing history of eachparticular cylinder. For a variety of reasons, there may also bevariations in the actual fuel charge delivered (or expected to bedelivered) during any particular working cycle. If desired, a sparktiming controller or control algorithm can be designed to attempt tooptimize the spark timing of each working chamber firing on a firing byfiring basis based on the firing history of that particular cylinder andother factors believed to be relevant to the spark timing.

In another example, some engines have cam phasers, electronic valvecontrols or other mechanism that may be used alter the valve timing.Some mechanisms (e.g., electronic valves) may facilitate control on acylinder by cylinder/working cycle by working cycle basis. Others, (e.g.mechanical cam phasers) may facilitate dynamic control of valve timingduring operation of the engine—but not on an individual cylinder byindividual cylinder basis. The controller can be designed to control thevalve timing at whatever level is appropriate based on the mechanismsthat are available to alter the valve timing.

Although optimization of only a few operational variables (e.g., air,fuel and spark timing) have been described, it should be appreciatedthat any variable that is controllable during operation of the enginethat affects the operation of the engine may optionally be adjusted asdesired to help optimize the cylinder firings. At the same time,although it may be possible to optimize a number of variables, it is notnecessary to optimize all of the possible variables, and it is notnecessary to optimize any variable to their maximum thermodynamicefficiency or to any specific emissions characteristics. Rather, thebenefits of the described skip fire type operation of an engine usinggenerally optimized charges of air and fuel may be obtained over a rangeof different specific settings of the mechanisms (e.g., fuel injectors,valve lifters, throttle, spark timing, etc.) that affect thethermodynamic efficiency of the cylinder firings.

The determination of the specific settings used at any given time duringoperation of the engine may be made in any suitable manner. For example,the settings may be calculated dynamically in real time during operationof the engine based upon the current operational state of the engine.Alternatively, appropriate settings may be stored in lookup tables basedon predetermined engine performance maps. In still other implementation,values that are calculated or retrieved can be modified based on currentoperational parameters, such as the emissions profile or current stateof the catalytic converter. Of course, a variety of other conventionalor non-conventional approaches may be used to determine specificparameters for the optimized firings.

Fuel Rich Drive Pulses

There may be times when it is desirable to provide a richer air/fuelmixture to the working chambers than the normal/full drive pulses inorder to provide a desired emissions profile (e.g., to better match theemissions output of the engine to the catalytic converter) or for someother purpose. In effect, this requests delivering more fuel to thecylinder than the amount of fuel that is deemed optimal and more than astoichiometric amount of fuel. By way of background, in manyimplementations, the “optimized” amount of fuel that is used for aparticular operational state will correspond to a slightly lean mixture.That is, a slightly less than stoichiometric amount of fuel isintroduced into each fired working chamber. An issue that can sometimesarise when running an engine lean is that the emissions profile of thecylinders may not always fall within the capacity of the catalyticconverter. Similar types of problems occur in the operation of enginesin a conventional mode. In order to address this issue, someconventional engines are periodically run in a fuel rich mode (i.e., aslightly greater than stoichiometric amount of fuel is provided) for abrief period in order to adjust the emissions profile in a manner thatfacilitates good operation of the catalytic converter.

The nature of the issue can be understood with reference to FIG. 10,which illustrates selected emissions characteristics of a representativeOtto cycle engine at different air/fuel ratios. As can be seen therein,the amount of carbon monoxide (CO) in the emissions tends to increase asthe mixture becomes richer and increases quite significantly in mixturesthat are richer than stoichiometric. The amount of Nitric Oxide (NO)tends to be highest at a near stoichiometric mixture ratio and fall offrelatively quickly as the air/fuel ratio becomes leaner or richer. Theamount of hydrocarbons (HC) in the exhaust also generally tends toincrease relatively quickly with increases in the mixture ratio beyondstoichiometric conditions. Many catalytic converters require thepresence of a certain amount of carbon monoxide to run efficiently. Ifthe engine runs lean, it is possible that the catalytic converter willbecome depleted and will not work efficiently due to the lack of carbonmonoxide. In order to address these problems, some existing ECUs aredesigned to periodically run the engine with a rich fuel mixture for ashort period of time in order to replenish the catalytic converter.

The catalytic converter depletion issue can readily be addressed in thedescribed skip fire variable displacement mode by periodically utilizingfuel rich firings. If desired, the drive pulse generator can beconfigured to sometimes output “fuel rich” drive pulses that request thedelivery of more than an optimal amount of fuel or the sequencer may bearranged to sometimes provide excess amounts of fuel to selectedcylinders as appropriate. Alternatively, the sequencer or other logicwithin the fuel processor or engine control unit may be arranged todirect the fuel injection drivers to increase the amount of fueldelivered in a particular firing, or set of firings in order to obtainthe desired effect.

In implementations that utilize the sigma-delta controller 202 at leastin part to determine the timing of fuel rich pulses, one of the statesof a multi-bit comparator such as described below with reference to FIG.8 may be used to designate the fuel rich pulses. Although thesigma-delta controller 202 can be used to designate the timing of thefuel rich pulses, that is not necessary. Rather, the timing andgeneration of the fuel rich firings may be determined by a variety ofcomponents in response to signals received from exhaust gas monitoringsensors and/or the ECU. By way of example, in various implementations,the decision to introduce a fuel rich pulse or a set of fuel rich pulsesmay be made independently by the synchronizer 222, the sequencer 108,the ECU, or other logic within the fuel processor in order to obtain thedesired effect. It is noted that a fuel rich firing typically will notsignificantly affect the power generated by the firing. That is, theamount of energy derived from a fuel rich firing will typicallyrelatively closely approximate the energy derived from anormal/optimized firing. Therefore, from a control standpoint, there istypically no need to alter the feedback to the sigma delta controlcircuit based on the additional fuel being delivered during fuel richfirings. However, if desired, the feedback can be estimated in anotherway or adjusted to reflect the actual energy output of the firing.

Partial Drive Pulses

In most of the embodiments discussed above—all of the cylinders that areactually fired are operated at near their optimal efficiency, e.g., withconstant or near constant fuel supply with substantially unthrottledoperating conditions (e.g. at or close to “full throttle” in throttledengines). However, that is not a requirement. In some circumstances itmay be desirable to operate some of the working cycles at less thantheir optimal efficiency to meet specific short term needs such as moreprecisely controlling and/or smoothing the engine's output or to addressemissions concerns. The described drive pulse generator 104 can readilybe configured to cause some percentage (or all) of the non-skippedworking cycles to operate at less than their optimal efficiency whenthat is desired. More specifically, the drive pulse generator may beconfigured such that some of the generated drive pulses are partialdrive pulses that call for reduced energy output cylinder firings. Thepartial drive pulses may all have the same energy output level (e.g., ½energy) or may have multiple discrete energy output levels (e.g., ½ and¼ energies). Of course, the number of different energy output levelsthat are used in any particular implementation, as well as theirrelative magnitude, may be widely varied.

When a partial drive pulse is received by the sequencer 108, it arrangesfor a lower amount of fuel to be injected into the cylinder that isfired corresponding to the partial drive pulse. If the fuel used in theengine can be ignited in a lean environment, it may be possible toreduce the amount of fuel delivered for a particular firing withoutadjusting the throttle for partial drive pulses so that the amount ofair delivered to a cylinder will be unaffected by a partial drive pulse.However, most gasoline engines can not consistently and reliably ignitethe gasoline fuel in a very lean environment. Therefore, in such enginesit would be necessary to also reduce the amount of air introduced to thecylinders designated to fire as partial drive pulses. It should beappreciated that the response time of most throttles is relatively slow.Therefore, in throttled engines, it may be difficult to toggle thethrottle position between full drive pulses and the partial drive pulsesin situations where the partial drive pulses are interspersed with fulldrive pulses. In such engines it may be desirable to reduce the airprovided to the cylinders using any other techniques that iscontrollable in the particular engine, as for example by altering thevalve opening timing if valve timing is controllable as it typicallywould be with electronic valves.

When partial drive pulses are used, the amount of air and fuel that isdelivered to the cylinder is preferably measured to supply theproportional amount of drive energy that is reflected in the partialdrive pulse. For example, if the partial drive pulse calls for one halfthe total energy, then the amount of fuel that is supplied would be theamount of fuel expected to deliver one half the total drive energy—whichwould typically be more than ½ of the fuel required to operate atoptimal efficiency, because the thermodynamic efficiency of the cylinderwill be lower when it is operated under sub-optimal conditions.

It should be appreciated that although it is preferable to relativelyaccurately correlate the net energy delivered by the partial energyworking cycles with the engine output requested by the partial drivepulses—that is not always required. Particularly when the partial drivepulses are a relatively low percentage of the total number of drivepulses (e.g., less than about 10 or 15 percent), their cumulative impacton the total drive energy delivered by the engine is not particularlylarge so approximations may still work adequately. For example, a onehalf drive pulse could be correlated to the delivery of one half (orother fixed percentage—e.g. 65%) of the fuel delivered in a full drivepulse.

Partial drive pulses can be useful in a number of ways. As suggestedabove, they can be used to help smooth the engine's output. Thissmoothing can be useful at any engine speed and is especially noticeableat lower engine speeds (low RPMs). Another reason that partial drivepulses are sometimes desirable is to help further reduce enginevibrations. As pointed out above, many controllers such as thesigma-delta control circuit 202 described above are susceptible togenerating tones—which in some conditions can lead to resonant vibrationor other undesirable vibration patterns. Dither can be introduced to thecontroller and the sequencer can be designed appropriately to help breakup some of these patterns. However, in many applications it may bedesirable to provide other mechanisms to help break up patterns and/ormore actively control engine vibrations. Partial drive pulses may beused in addition to and/or in place of other pattern control measuresdiscussed herein.

Yet another reason to provide partial drive pulses is to change theemissions profile of the engine. For example, in some operationalconditions in some vehicles, the catalytic converter may not be wellsuited to handle the emissions profile of only optimized full drivepulses. In such situations, the amount of fuel delivered to some of thefired cylinders may be varied to better match the emissions output ofthe engine to the catalytic converter.

The simple synchronizer 222 described above can readily be configured tohandle partial drive pulses. In one implementation, the synchronizer isconfigured to generate a half energy pulse any time the burst length ofhigh outputs from the sigma-delta control circuit is within a designatedrange. For example, if the burst length of high outputs is more thanhalf the period of the drive pulse but less than a full drive pulseperiod, then a half pulse can be generated. Of course, the actualtrigger points can be varied to meet the needs of a particularapplication (e.g., burst lengths from 45 to 90 percent of the drivepulse period or other suitable ranges may be set to trigger thegeneration of a partial drive pulse).

If multiple partial drive pulse levels are provided, then each level canbe configured to trigger on burst lengths having an associated range.For example, burst lengths of 25-49% of a drive pulse period may causethe generation of a quarter drive pulse, and burst lengths of 50-99% ofthe drive pulse period may cause the generation of a half drive pulse.Again, it should be appreciated that this is merely an example and thatthe actual ranges and conditions that trigger the partial drive pulsesmay be widely varied.

When desirable, partial drive pulses can also be used when the burstlengths are significantly longer than the drive pulse period, but notlong enough to trigger another full drive pulse. For example, a partialdrive pulse may be triggered when the remainder of a burst (i.e., thelength of the burst that exceed an integer number of drive pulses) fallswithin a designated range.

In order to insure that the engine operates efficiently and withinacceptable emission levels, in many applications it may be desirable tolimit the number of partial drive pulses outputted by the drive pulsegenerator 104. For example, it may be desirable to limit partial drivepulses to some percentage (e.g., a maximum of 10 or 20 percent) of thedrive pulses generated by the drive pulse generator. If desired, thepercentage of drive pulses permitted may also be a function of enginespeed. For example, if the engine is running very slowly (e.g., idling)it may be desirable to permit more (or all) of the drive pulses to bepartial drive pulses.

The drive pulse generator may readily be configured to provide partialdrive pulses and to set appropriate conditions or limitations regardingthe availability, number and/or timing of the partial drive pulses. Byway of example, a sigma delta controller and corresponding drive pulsegenerator suitable for generating multiple level drive pulses isdiscussed below with reference to FIG. 8.

Partial Throttle Operation

In still other embodiments of throttled engines, the engine cansometimes be operated in a skip fire type variable displacement modewith a throttle position that is substantially less than the optimalthrottle position (i.e., at partial throttle). In these embodiments theengine remains in a continuously variable displacement mode even thoughit is not optimizing the working cycles. That is, the amount of air andfuel delivered to each cylinder/working chamber is reduced relative toan optimized firing, although the actual amount of fuel delivered may beoptimized for the amount of air actually delivered to the cylinder (e.g.in stoichiometric proportions). Although the fuel efficiency of anengine operating at partial throttle with deoptimized working cycleswill generally not be as good as it would be at an optimal throttleposition, the partial throttle skip fire operating mode will generallystill provide better fuel efficiency at a given engine speed/poweroutput than conventional throttled operation of the engine because theactive working cycles are more efficient than the working cycles wouldbe if every cylinder was being fired.

This partial throttle skip fire operation can be useful in a variety ofapplications—including application where relatively low power outputsare required and/or at low engine speeds, as for example, when theengine is idling, the vehicle is braking, etc. Notably, partial throttleskip fire operation tends to facilitate smoother engine operation and/orcontrol at low engine speeds. Also, partial throttle operation may beused to provide better engine braking, to improve emissionscharacteristics, etc. In some implementations, the controller may bearranged to automatically adjust to a lower throttle setting whilecontinuing to operate in the skip fire type variable displacement modewhen the engine is in pre-defined operational states. For example, thecontrol unit may reduce the throttle setting if the engine speed dropsbelow a designated threshold (e.g., below 2000 RPM, 1500 RPM, etc.),during braking and/or before the engine has fully warmed up.

If desired, multiple different partial throttle settings may be employedto meet the needs of a particular application. For example, oneimplementation might employ four distinct throttle states. One stategenerally corresponding to on optimal throttle position (sometimesreferred to as a full throttle position regardless of whether thethrottle is actually wide open), a second state corresponding to halfthrottle position, a third state corresponding to a quarter throttleposition and a fourth state corresponding to an idling and/or brakingthrottle position. The conditions used to trigger transitions betweenoperational states can vary widely in accordance with the needs of aparticular application.

The throttle position does not have to be completely fixed in thedifferent partial throttle operational states. Rather, secondaryconsiderations may influence the specific throttle setting used at anyparticular time in any particular operational state. For example, theactual throttle position for the idle state may vary somewhat based onhow warm or cold the engine is. In another example, the actual throttleposition for the “full throttle” state may vary to optimize fuelefficiency as discussed above. Of course, other considerations mayinfluence the specific throttle settings as well.

In still other embodiments, the described skip fire control may be usedin conjunction with fully variable throttle positions as will bedescribed in more detail below in the section titled Throttled Skip FireControl.

Multiple throttle positions may also be used to help smooth thetransition between conventional throttled operation and optimized skipfire operation. It should be appreciated that the transition fromconventional (all cylinder) operation to optimized skip fire operationcan sometime induce undesirable vibration. In some operating conditions,some such vibration can be mitigated by gradually transitioning thethrottle from its (then current) operating position to the position thatis appropriate for optimized skip fire operation. In embodiments thathave one or more “partial throttle” positions, this can be accomplishedby staging the transition by entering the skip fire mode at one of thepartial throttle positions that is between the current (conventionaloperation) throttle position and the optimal skip fire throttle positionand then moving to higher available throttle positions until the optimalthrottle position is attained. In fully variable throttle versions, thetransition can be made by gradually increasing the throttle positionduring the transition. Of course, when appropriate, transitions fromoptimized skip fire to conventional operation may also be gradual orstaged a similar manner.

Variable Displacement Operating Mode

There are times during the operation of an engine where it might not bedesirable to operate the engine in the described continuously variabledisplacement operating mode. At such times, the engine can be operatedin the same way it would be operated today—i.e., in a normal orconventional operating mode—or in any other manner that is deemedappropriate. For example, when an engine is cold started it may not bedesirable to immediately operate any of the cylinders at their optimalefficiency or even in a partial throttle skip fire mode. Another exampleis when the engine is idling and/or the engine speed is low and the loadon the engine is low. In such conditions it may be undesirable tooperate the cylinders at their optimal efficiency or even using partialthrottle skip fire because it may be difficult to ensure smoothoperation of the engine and/or control vibrations. To illustrate theissue, consider a 4 cylinder engine that is idling at 600 RPM with nosignificant external load (e.g., the vehicle is in neutral). In such astate, a total of 1200 firing opportunities (i.e., 300 firingopportunities per cylinder) would occur each minute or 20 each second.However, in neutral, the load seen by the engine will primarily be thefrictional losses associated with keeping the crankshaft turning. Thisload may be low enough such that more than a second would pass betweensequential optimized firings. Such delays between firings could lead torough operation and undesired vibrations in many engines. Similarly,when the driver is braking and in other situations where the load on theengine is very low, it may be undesirable to continue to optimize theworking cycles.

To handle these types of situations, the engine can be run in aconventional mode any time that skip fire operation is undesirable. Awide variety of triggers can be used to determine when it is appropriateto shift between operational modes. For example, an engine control unitthat incorporates the optimized control described herein can be arrangedto operate in a conventional mode for a fixed period after everystart—or until the engine reaches a desired operating temperature.Similarly, the engine control unit may be arranged to operate in aconventional mode any time the engine is operating at speeds outside aprescribed range—e.g., the engine is idling or otherwise operating atless than a threshold engine speed (e.g. 1000 or 2000 RPM). Although theconcern is greatest when the engine is operating at low engine speeds,if desired or appropriate, the optimized control of the variabledisplacement mode can also be disengaged at engine speeds above adesignated threshold as well (e.g., at above 6000 RPM). This might bedesirable to provide additional power at high engine speeds or whenmaximum engine output is desired. In another example, the engine couldbe operated in the variable displacement mode only when the engine isrunning within a specific range of engine speeds (e.g., 2000-4000 RPM).In other examples, the trigger thresholds for entering and exiting thevariable displacement mode may exhibit hysteresis. For example, it maybe desirable to provide a first threshold (e.g. operating at over 2500RPM) to trigger entering into the variable displacement mode and toprovide a second threshold (e.g. operating at less than 2000 RPM) forexiting the variable displacement mode. The staggering of the thresholdshelps reduce the probability of frequent transitions in and out ofdifferent operating modes.

In other specific examples, the variable displacement mode can bedisengaged: (a) when the vehicle is braking; (b) if undesired vibrationsor other perceived problems are detected in the engine; (c) when theload on the engine is below a designated threshold; and/or (d) when theaccelerator pedal position is below or above a designated threshold. Instill further examples, the variable displacement mode can be disengagedwhen there are time delays between sequential firings of greater than adesignated period of time (e.g., 0.2 seconds) or gaps between sequentialfirings of more than a designated number of firing opportunities. Instill other embodiments, it may be desirable to provide some hysteresisor delay in transitions between modes. For example, if a threshold isset for the engine to transition from the variable displacement mode toa conventional operational mode if the engine speed falls below 2000RPM, it might also be desirable to require that the engine operate atless than 2000 RPM for some period (e.g., at least 3 seconds) before themode transition is made. Such a waiting period helps reduce theprobability that very transitory events, such as shifting gears, wouldtrigger a mode change.

It should be appreciated that these are just examples of situationswhere it may be desirable to opt out of the continuously variabledisplacement mode and that there may be a wide variety of othersituations that might warrant disengagement and/or triggers that may beused to initiate disengagement. The described situations and triggersare simply examples which can be used individually, in any desiredcombination, or not at all. Various embodiments of engine control units,firing control units, firing control co-processors and otherarrangements that incorporate the described optimizations can bearranged to disengage the continuously variable displacement modewhenever deemed appropriate and/or whenever operation in thecontinuously variable displacement mode is deemed inappropriate.

Feedback Control

In the discussions herein, we often refer to controlling the engine toprovide a desired output. In a simple analog approach, feedbackindicative of a firing or drive pulse may be provided at a generallyconstant level (“height”) for a period of time corresponding to theperiod between firing opportunities. It should be appreciated that whenthis type of feedback is provided, the engine is controlled to provide adesired output that is a function of accelerator pedal position (orother input signal) and the pedal position does not correspond to afixed torque or power value. Thus, the actual power delivered by theengine at any desired output level will be a function of the currentoperational state of the engine and the current environmental conditionsjust as it is in most current vehicle control systems. Morespecifically, it should be appreciated that the actual amount of driveenergy or power that is obtained from each working chamber firing willvary as a function of a number of variables. For example, an optimizedfiring of an engine operating at a high elevation and at a high RPM willlikely provide less power than an optimized firing at a low RPM.Similarly, an optimized firing that has been tuned for emissionsconsiderations may provide a slightly different amount of power than anoptimized firing tuned primarily for fuel efficiency.

The controllers described above work well under any conditions andindeed tend to mimic the type of response that is found in many vehiclestoday. However, the actual amount of power delivered by the engine for agiven throttle position may vary slightly as a function of environmentaland/or operating conditions. It should be appreciated that thecontroller can readily be set up to provide different control behaviorwhen desired. For example, the control may be set up to treat thedesired output signal as a request for a designated amount of poweroutput from the engine. In one such embodiment, each firing of acylinder can simplistically be thought of as providing a specifiedamount of work, and the feedback can be based on this notion. That is,each fed back firing opportunity delivers the same quanta of negativefeedback to the sigma delta controller.

It should be appreciated that in real engines, the amount of work, powerand/or torque that is actually obtained from the firing of a particularcylinder will not always be the same. A number of factors influence thethermodynamic energy available from a particular firing. These factorsinclude the mass, temperature and pressure of the air introduced to thecylinder, the amount of fuel, the air/fuel ratio and the energy contentof the fuel, the engine speed, etc. In various embodiments, the feedbackmay be adjusted and/or feed forward may be used so that the feedbackused within the controller more accurately reflect the actual amount ofwork (or torque or power) expected from each firing. In specificembodiments, the feedback can be adjusted with changes in the engine'soperating conditions and/or when suitable information is available, toaccount for variations between firings. The variations between firingsmay be due to: controlled factors such as the fuel charge delivered to acylinder (e.g., variations between lean, rich and normal fuel charges);inherent factors such as geometric differences in the intake manifoldrunners which may result in different amounts of air being introduced todifferent cylinders; operational factors such as current engine speed,firing history, etc.; and environmental factors such as ambient airtemperature and pressure, etc.

Most modern automotive engines have a variety of sensors that are madeavailable to the engine control unit that can be used to help estimatethe amount of actual energy obtained by any particular firing. By way ofexample, input variables such as manifold pressure (MAP), mass air flow,air charge temperature, cam timing, engine speed (RPM), injectiontiming, spark timing, exhaust oxygen level, exhaust back pressure(especially in turbocharged engine), exhaust gas recirculation, and anyother inputs that might be available in a particular engine can all beused to help estimate the amount of useful work that is expected fromthe current firing and adjusting the feedback to the control circuitappropriately. Thus, the feedback provided to the controller may bearranged to vary as a function of any of these factors in combination orindividually. Although such fine tuning of the feedback may be desirablein some applications, it should be appreciated that it is not necessaryin all application.

In practice, the actual work obtained from any particular firing may beestimated based on a limited number of inputs that are available in aparticular engine (e.g., only the amount of fuel provided, only thequanta of air and fuel provided and the engine speed, etc.). Of course,other approaches to estimating the output can be used as well. Theseestimates can be calculated dynamically during operation, provided inlookup tables accessible by the controller or determined using a varietyof other approaches.

Still further, if the engine begins to operate in a range where thepower or torque outputted by the engine begins to level or drop off, thedrive pulse generator can be designed to recognize the operational stateand respond appropriately. In some embodiments, this may be accomplishedby simply disengaging the continuously variable displacement mode andoperating using conventional control. In some other embodiments, thedrive pulse generator may be adapted to adjust the outputted drivepulses accordingly. Of course, a wide variety of other approaches can beused to handle these situations as well. In situations where partialdrive pulse/throttle firings are made, the feedback may be scaled tomore accurately reflect the reduced energy generated by the reduced fuelfiring(s).

In a controller that is designed to treat the input signal as anindication of a desired power output, the quanta of feedback associatedwith each firing may be scaled to reflect the amount of energy obtainedfrom each firing. In controllers that take feedback from severallocation (as for example, illustrated in FIG. 3), the feedback from eachsource is scaled in appropriate proportions such that the total feedbackrelatively accurately reflects the power provided by a particularfiring. It is noted that in a digital system, the quanta of feedbackprovided may be set appropriately to reflect the power expected from aparticular firing. In an analog sigma delta system, the “width” of thefeedback pulse is indicative of the engine speed and the “height” of thefeedback pulse is scaled such that the total quanta of feedbackcorresponds to the energy obtained from the associated firing.

In most of the embodiments described above it is contemplated that thefeedback from the driven system (e.g., the drive pulse pattern 110outputted by the synchronizer 222; and/or the actual firing pattern 120)be based on an explicit feedback signal. However, it should beappreciated that in some embodiments the required information can bederived from other signals that might be available to the controller.For example, each actual firing of a working chamber will have someeffect on the engine speed (i.e., it will increase the engine speed).The change may be quite small in terms of its impact on the drivenmechanical system—but such changes may be readily detectable usingmodern electronic signal processing techniques. Therefore, if desiredand the tachometer signal is accurate enough, the actual firing patternfeedback can be derived from a tachometer (engine speed) signal ifdesired. In general, the feedback may be derived from any signal sourcethat is available to the controller that would have informationindicative of the firing pattern embedded therein.

Referring next to FIG. 18, another embodiment of the invention thatutilizes both feedback and feed forward in the determination of thefiring pattern will be described. In this embodiment, the controller 600is arranged to compensate for variations in the drive energy provided byeach firing. The figure also illustrates some of the other enginecontrols in addition to the firings that may be controlled by any of thedescribed engine controllers. In the illustrated embodiment, anindication of the accelerator pedal position is fed to a preprocessor181 that is arranged to preprocess the pedal position signal. Aspreviously discussed, the pedal position signal is treated as anindication of the desired output of the engine. The purpose of thepreprocessor 181 is described in more detail in the section labeledpre-processor stage below. The preprocessed pedal signal is fed to amultiplier 601 which multiplies the pedal signal by a factor appropriateto compensate for variations in the drive energy provided by thefirings. This is an example of using feed forward to adjust thecontroller for variations that occur during operation. The factoreddesired output signal is provided to drive pulse generator 104, whichproduces drive pulse signal 110. The drive pulse signal 110 is fed tosequencer 108 which determines the actual firing pattern 120 aspreviously described. The firing pattern 120 is used to control thecylinder firings of engine 604.

The engine controller 600 is also arranged to control other enginevariables such as the throttle position, the spark timing, and theinjectors. In the illustrated embodiment, an engine control block 620 isarranged to instruct component controllers to control their associatedcomponents in a manner that facilitates efficient or optimized operationof the engine. The engine control block 620 is arranged to determine thedesired setting for any of a variety of controllable components in orderto permit the engine to operate efficiently. Generally, the appropriatesetting will be found in appropriate lookup tables. However, whendesired, the appropriate setting can be calculated dynamically basedupon current operational and/or environmental conditions.

In the illustrated embodiment, the engine control block 620 includes athrottle controller 621, a spark timing controller 624 and an injectioncontroller 627. In other embodiments, the engine control block mayinclude additional device drivers appropriate for controlling othercontrollable components of a specific engine or vehicle. One suchexample is a transmission controller for controlling an automatictransmission. In still other embodiments, a stock ECU can be used tohandle these functions of the engine control block.

The engine control block 620 receives a number of sensor inputsincluding current engine speed (RPM), intake manifold pressure (MAP),wheel speed, available environmental sensors, etc. The engine controlblock 620 also has a series of lookup tables that store the desiredsetting to provide the desired (e.g. optimized) firings based on currentconditions. In a simple system, these variables might include thedesired fuel charge, spark timing and manifold pressure. The tables maybe multi-dimensional maps based on factors such as the rotational speedof the engine, current environmental conditions and/or other aspects ofthe operational state of the engine. The specific controllers thencontrol their associated components to obtain the desired firings. Itshould be appreciated that existing engine controller technology arevery well suited for handling the control of these components andaccordingly, such functionality, may readily be incorporated into theengine control block. These controls may also vary some of the actualsettings (e.g. the fuel charge) to accommodate other concerns such asemissions control, etc. It should be appreciated that the specificcontrol schemes, algorithms and prioritizations used in the variouscomponent controllers may be widely varied to meet the needs of anyparticular application. For example, as explained above, in somesituations it may be desirable to maintain a relatively constantmanifold pressure. The desired manifold pressure for specific operatingconditions can be stored as part of the lookup table in an injectionmap. This information may be passed to the throttle controller whichreceives appropriate available sensor inputs—such as the currentmanifold pressure, the current engine speed (e.g., RPM), etc. Based onthese inputs the throttle controller may be arranged to controls thethrottle in a manner that provides the desired manifold pressure.

Based upon the setting and the current operating conditions of theengine, the engine control block 620 can also determine the amount ofdrive energy that standard firings will provide relative to a nominaldrive energy. A suitable multiplier factor can then be calculated tosupply to the multiplier 601 to compensate for the difference betweenthe expected drive energy of a firing and the nominal drive energy of afiring. For example, if the drive energy expected from the firings is95% of the nominal drive energy, the multiplier may be arranged tomultiply the pedal input by the inverse of 95%. The use of a multiplierin this manner during optimized firings causes the controller toeffectively treat the accelerator pedal position as a request for adesired power.

As explained above, there are also times when it will be desirable tooperate at partial throttle while remaining in the skip fire variabledisplacement mode. The multiplier can be used to facilitate such partialthrottle operation as well. For example, if a decision is made toutilize half energy firings, the engine control block 620 may set thethrottle and the fuel charge appropriately such that each firingprovides approximately half of the drive energy. At the same time, themultiplier factor supplied to multiplier may be set to “2”. Thiseffectively tells the drive pulse generator 104 that twice as manyfirings are needed to provide the desired output. It should be apparentthat the multiplier can be used in this manner to facilitate operationat virtually any desired level of partial throttle.

It should be appreciated that the engine controller architecture shownin FIG. 18 schematically illustrates just one suitable implementationand that the architecture of the engine controller may be widely variedto perform the desired functions and to appropriately direct thecontrollable engine components. It should also be appreciated that inany given implementation, the described multiplier may be used tofacilitate both desired power based control and partial throttleoperation—or just one of those functionalities.

In some implementations it will be desirable to utilize the describedskip fire mode of operation in conjunction with cruise control.Generally the same firing control unit may be used in conjunction withcruise control as previously described, with the cruise controllerproviding the input signal 113 just as cruise controllers work today.

In yet another embodiment, the cruise control functionality can even bebuilt into the drive pulse generator, although the interpretation of theinput signal 113 and the feedback to the controller need to be changedappropriately. Typically, cruise control seeks to maintain a constantvehicle speed, as opposed to a constant power output. To function as acruise controller, an indication of the desired speed may be used as theinput signal 113 instead of an indication of accelerator pedal position.The desired speed input signal may come directly or indirectly from thecruise control unit or from any other suitable source. In suchimplementations the feedback provided to the drive pulse generator isindicative of the current speed of the vehicle as opposed to specificfirings. The indication of the may come from any suitable source, as forexample from one or more wheel speed sensors, a speedometer or otherappropriate sources. When the vehicle transitions out of cruise control,the input signal and the feedback can revert back to the desired outputsignal and feedback indicative of the firings respectively asappropriate. Alternatively, if the conditions that exist when thevehicle transitions out of cruise control are unsuitable for skip fireoperation, the vehicle can be transitioned to a conventional operatingmode where all of the cylinders are fired all of the time.

In the description herein, a number of different feedback and feedforward approaches are described. Any of these approaches can be made towork adequately in specific applications. The choice of the approachused will have an effect on the engine's performance and efficiency andthe selection of a particular feedback approach may be based on thedesired performance characteristics for the engine.

Retrofitting Current Engines

In current commercially available variable displacement engines,selected cylinders are shut down—often in banks—and the remainingcylinders are used in their normal operating mode. Since fewer cylindersare working when some of the cylinders are shut down, the remainingcylinders operate under conditions that are more efficient than theywould be if all of the cylinders were operating. However, they stilldon't operate at their optimal efficiency.

When selected cylinders of a conventional variable displacement engineare shut down, the valves associated with those cylinders are typicallyclosed and kept closed through the operation of the engine. In enginesthat don't have electronic valves, this requires a more complexmechanical structure and some coordinated efforts to selectivelydisengage the valves from the camshaft. As a result, commerciallyavailable variable displacement engines are not designed to rapidly moveback and forth between different displacements.

One reason that the valves are kept closed in cylinders that are shutdown in conventional commercially available variable displacementengines is to help reduce pumping losses that would inherently occur inthe shut down cylinders if the valves of the skipped cylinders open andclose at their normal times. The same type of pumping losses would occurif the valves are opened and closed at their normal times when operatingin the described continuously variable displacement mode. Therefore,when used in engines that have selective control over the opening andclosing of the valves, it is desirable to close the intake and exhaustvalves of cylinders that are skipped. However, the fuel andthermodynamic efficiency of the engine will be substantially improvedeven if the valves of skipped cylinders are opened and closed at theirnormal times.

The perceived need to close the valves associated with shut downcylinders may have led to the impression that it is impractical toconvert existing fixed displacement internal combustion engines tovariable displacement engines. One very significant advantage of thepresent invention is that an appropriate controller can readily beinstalled on many existing engines to retrofit those existing engines tosignificantly improve their fuel efficiency. This is true even if it isnot possible or practical to close the valves of skipped cylinders—whichwill be the case in a significant majority of the existing engines.Retrofitting can be done by replacing the engine control unit (alsooften referred to as an engine control module) with an improved enginecontrol unit that incorporates the control of the present invention; byinterfacing a firing control co-processor or a co-processing unit thatincorporates the control of the present invention with the existingengine control unit; or by otherwise incorporating the described controlinto an existing engine control unit.

Another reason that the valves associated with shut down cylinders areheld in the closed position in conventional variable displacementengines is to insure that the emission control unit doesn't try tochange operation of the engine due to the very large amount of oxygenthat would be present in the exhaust gas stream if the valves associatedwith unfueled, skipped cylinders opened and closed normally.Specifically, if air is sucked into a cylinder and not burned before itis expelled from the cylinder, the expelled gas will have dramaticallymore oxygen in it than would be present if fuel had been injected intothe cylinder and burned (which would have the effect of consuming muchof the oxygen present). Many engines have exhaust gas oxygen sensors todetect the amount of oxygen present in the exhaust gas stream. Theoxygen sensors provide information to the emission control units, whichutilize the information to help manage engine operations to insure thatexhaust gas emissions are minimized and conform with environmentalregulations. If the valves of skipped cylinders are allowed to open andclose in a conventional manner while operating in the continuouslyvariable displacement mode, then the exhaust gases will have far moreoxygen than the emissions control unit expects. Accordingly, whenengines that have exhaust gas oxygen sensors are run in a manner thatallows the valves of skipped cylinders to open and close in a normalfashion, it will typically be desirable to adjust or override the oxygensensor signal, or to adjust any control that is based on the level ofoxygen in the exhaust gas to account for the extra oxygen that isexpected in the exhaust. In other applications, it may be desirable ornecessary to replace the oxygen sensor with a wideband lambda sensorthat works with the engine control unit or firing control co-processor.Additionally, as previously mentioned, it may sometimes be desirable tooptimize the amount of fuel provided with each firing and/or toperiodically provide partial or fuel rich fuel charges to insure thatthe exhaust emissions are suitable for good operation of the catalyticconverter.

Another factor that may be desirable to consider when retrofittingcurrent engines is trying to ensure that the “feel” of operating theengine (e.g. driving the vehicle that includes the controlled engine)does not change too appreciably after the retrofit is made. That is, itmight be desirable for the feel of the engine to be similar before andafter a retrofit is made. One way to help accomplish this is totransition the engine from the continuously variable displacement modeto a “normal” operating mode that modulates the throttle and does notskip cylinders anytime it is perceived that the feel of operating theengine might change significantly. In other implementations, the controlin the variable displacement mode may be altered in specific situationsto provide a feel that is closer to the feel that would be experiencedduring normal operations.

By way of example, many vehicles (including trucks, cars, etc.)experience noticeable “engine braking” when the accelerator pedal isreleased. In the continuously variable displacement mode, the throttleis typically held at something close to wide open to allow maximum airto be supplied to the working chambers and thereby facilitate optimizingthe thermodynamic efficiency of the engine. However, when the throttleis wide open, the pumping losses experienced by the engine are reducedand accordingly, the amount of engine braking that would be felt by auser may be reduced by a noticeable amount. In some situations, it maybe desirable to try to more closely mimic the engine braking feel thatwould be perceived during pre-retrofit operations. Again, this can beaccomplished by transitioning the engine from the continuously variableoperating mode to a normal operating mode any time the accelerator pedalis released or the brakes are applied. Alternatively, the throttle couldbe partially or fully closed (e.g., closed to the extent it would beclosed during normal operations), while still skipping selected firingsin the continuously variable displacement mode. If such an approach wereused to facilitate engine braking, the amount of fuel introduced intothe fired working chambers would be adjusted to correspond to thereduced amount of air that would be provided to the cylinders due to theclosing, or partial closing of the throttle.

Although the concept of engine braking is being discussed in connectionwith a discussion of retrofitting existing engines, it should beappreciated that the design goals for a particular engine may requiremore effective engine braking than would be provided with a fully openthrottle even in new engines. Accordingly, the firing control unit 100may be arranged to adjust the throttle position to provide desiredengine braking as desired. Alternatively or additionally, in enginesthat facilitate selective control of the opening and closing of thevalves (e.g. engines that have electronic valves) it may be possible tomodulate the opening and/or closing of the valves of skipped cylindersto provide enhanced engine braking.

It should be appreciated that engine braking is just one facet of anengine's “normal” feel that may be desirable to replicate duringoperation in a variable displacement mode. The firing control unit 100may be designed to replicate other desired aspects of an engine'soperational feel as well.

Exhaust and Emissions Systems

As will be appreciated by those familiar with vehicle engine design, theexhaust systems of many existing engines are tailored to the expectedchemistry and temperatures of the exhaust gases. When the valves ofskipped cylinders are allowed to open and close in a conventional mannerwhile operating in the continuously variable displacement mode, air iseffectively pumped through the unfired cylinders. This results in theexhaust gases outputted under skip fire operation having a verydifferent profile than the exhaust gases that would be expected duringnormal operation of the engine. Most notably, when air is pumped throughunfired cylinders, the exhaust gases will have more oxygen (and oftenfar more oxygen) than would be present during normal operation of theengine. The unburnt air pumped through skipped cylinders is also muchcolder than the exhausts gases that are expelled from a fired cylinder.Many conventional emissions systems are not capable of handling eitherthe cold or the excess oxygen that are inherent when air is pumpedthrough unfired cylinders. Therefore, in many application (andespecially in applications which pump air through unfired cylinders), itwill be important to make sure that the exhaust and emissions systemsare capable of handling the exhaust gases outputted using the skip fireapproach.

The nature of the problem is particularly acute in engines that arerequired to meet high emissions standards and are designed to throttlethe delivery of air to the working chambers in order to modulate power(e.g. most non-diesel automotive engines). The exhaust systems utilizedin such engines often have catalytic converters that are not designed tohandle the large amounts of oxygen or the relatively cold air that areinherently present when air is pumped through skipped cylinders.

Unlike most Otto cycle engines, most commercially available dieselengines run unthrottled and modulate the amount of fuel that isdelivered to the cylinders in order to control the engine output. Assuch, diesel engines tend to have widely varying amounts of oxygen inthe exhaust gases. Therefore, the exhaust systems in diesel engines aregenerally arranged to handle a much wider variety of exhaust chemistriesthan the exhaust systems used in many Otto cycle engines. By way ofexample, some automotive diesel engines use a scrubbing system to cleanthe exhaust gases. Such scrubbing systems are well suited for handlingthe exhaust gases having oxygen rich pulses and varying temperaturesthat are inherent when air is pumped through skipped cylinders. Ofcourse, a variety of other emissions systems may be used as well, solong as they are capable of handling the profile of exhaust gasesoutputted during skip fire operation.

When designing new engines, the exhaust and emissions systems canreadily be designed to meet the needs of any particular design. However,when retrofitting existing engines to run in the described variabledisplacement mode, emissions and exhaust issues often will need to beconsidered as well. If the engine is capable of closing the valves ofunfired cylinders, then the existing exhaust and emissions systems cantypically handle the exhaust generated during operation in the variabledisplacement mode. Any required fine tuning of the exhaust profile cantypically be accomplished by firmware or software in the fuel processoror engine controller appropriately setting and/or occasionally varyingthe charge of fuel delivered during firing opportunities as discussedabove.

Many existing engines don't have complex emissions systems and thereforetheir existing exhaust systems are not adversely affected by the excessoxygen present in the exhaust stream when air is pumped through unusedcylinders. In these engines, the emissions will typically be improved byoperation in the variable displacement mode because the engine isoperated more efficiently with more consistent combustion chamberconditions so the fuel charge can readily be tailored to provide abetter emissions profile.

Many other existing engines employ emissions systems that are notcapable of handling excess oxygen pumped through unfired systems. Insuch engines, it may be necessary to modify the exhaust and/or emissionssystems such that they are able to handle the excess oxygen and burstsof relatively cold air passing through the exhaust. In someapplications, this may require replacement of the exhaust and emissionssystems, with systems that are capable of handling the exhaust stream.

In still other embodiments, it may be desirable to effectively providetwo parallel exhaust paths. One for exhaust gases expelled from firedworking chambers and the other for air pumped through unfired cylinders.This can theoretically be accomplished by inserting a flow director inthe exhaust path (e.g., in the exhaust manifold) that can be toggledbetween two positions—a first position that directs the exhaust gases tothe normal exhaust and emissions systems, and a second position thatdirects the exhaust gases to an alternative exhaust path that bypassesthe normal emissions equipment, but has any emissions equipment that maybe required to handle air pumped through unfired cylinders. With thisarrangement, the fuel processor can control the exhaust flow director(not shown) to toggle back and forth between positions to direct theexhaust gases to the appropriate path. It should be appreciated thatsuch control is quite easy to implement because the fuel processor knowswhen each firing occurs and the delay between a firing and thecorresponding exhaust gases reaching the flow director is relativelyeasily determined based on the engine's geometry and current rotationalspeed.

In still other implementations one or more high speed valves couldtheoretically be inserted into the intake manifold (or at anotherappropriate locations in the intake air flowpath) and controlled toblock air from being delivered to skipped cylinders (i.e., before theair reaches the cylinder's intake valve). This would substantiallyreduce or eliminate the pumping of air through unfired cylinders andwould eliminate the corresponding need to alter the existing exhaustand/or emissions systems. Of course, in other embodiments other suitablemodifications can be made to the engine to insure that either (1) air isnot pumped through unused cylinders; or (2) the exhaust and emissionssystems can handle any air pumped through unused cylinders.

Wall Wetting Issues

There are a variety of different fuel injections schemes that are usedin conventional internal combustion engines. One commontechnique—referred to as port injection—contemplates injecting fuel intoan intake port in the fuel intake manifold. The fuel then mixes with airin the intake manifold before the air/fuel mixture is introduced into acylinder by the opening of the cylinder's intake valve. In most portinjection systems, considerable efforts are made to optimize the fuelinjection characteristics (including injector targeting, injectiontiming, injection spray envelope and injection fuel droplet size) inorder to reduce engine emissions, increase performance and/or improvefuel economy. However, when running such an engine in a skip fire mode,different injection characteristics may be desirable.

A known issue for port injection systems is referred to as wall wetting.Specifically, wall wetting occurs when fuel is injected into the intakemanifold and some amount of the fuel impinges upon the walls of theintake manifold thereby causing the formation of a thin film of fuel onthe intake manifold walls. The amount of fuel that coats the walls ofthe manifold varies based on a number of factors including: (a) theinjector targeting which includes the direction of fuel spray from theinjector relative to the intake valve; (b) the injection spray envelopewhich includes the width of the fuel spray from the injector; (c) fueldrop size; (d) injection timing which involves the start and finish timefor injecting fuel relative to the times that the valve is opened andclosed. (Note that if the injection continues after the intake valve isclosed, fuel will impinge upon the closing valve and spray back over thewalls of the intake manifold).

Wall wetting has several unique implications when running an engine in askip fire mode where air is pumped through cylinders that are not fired.Most notably, if the walls of the intake manifold adjacent a particularcylinder are coated with fuel after that particular cylinder is firedand that cylinder is not fired during its next firing opportunity, thenair passing over wet portions of the intake manifold will typicallyevaporate some of the fuel film wetting the walls of the cylinder. Suchevaporation of fuel wetting the walls of the intake manifold has severalpotential effects. One potential effect is that evaporated fuel may bepumped through an unfired cylinder and out the exhaust. This increasesthe level of hydrocarbons in the exhaust and reduces fuel efficiency.When unburned hydrocarbons are present in the exhaust, they will likelybe consumed by the catalytic converter. Over time, too many hydrocarbonsin the exhaust cases can reduce the life of the catalytic converter.Another effect of wall wetting evaporation is that the next time askipped cylinder is to be fired, less fuel may be available to thecylinder since some of the fuel intended for the cylinder mayeffectively go to “rewetting” the walls of the intake manifold.

In order to reduce the effects of wall wetting losses, it may bedesirable to alter the injection profile to a profile less susceptibleto wall wetting—e.g., by altering the injection timing or othercharacteristics of the injection. It also may be desirable to adjust theamount of fuel delivered in any particular cylinder firing to compensatefor the evaporative wet wall losses that are expected to have occurredby the time a skipped cylinder is fired. Of course, the actual amount(quanta) of additional fuel that is appropriate for any given firingwill vary widely with the operational state of the engine and anyappropriate compensation may be used.

As will be understood by those familiar with wall wetting, in someexisting engine designs the amount of fuel that is present on the wallsof the intake manifold may be nearly as much as or potentially even morethan the amount of fuel that is injected during any one cylinder firing.If a normal fuel charge is injected after several skipped cycles, thereis a risk that almost all of the injected fuel may go to “rewetting” thewalls of the intake manifold and that the cylinder may not receiveenough fuel to fire properly which is undesirable. It should beappreciated that it is particularly desirable to adjust the quanta offuel injected in these types of situations.

In some of the embodiments discussed above, the firing of the cylindersis effectively randomized. In engines having fuel delivery techniquesthat are susceptible to wall wetting or similar types of losses, suchrandomization of the cylinder firing will inherently experience somereduction in fuel efficiency due to the wall wetting losses.Accordingly, when appropriate it may be desirable to sequence thefirings in a manner that favors more recently used cylinders. This canreadily be implemented using an appropriate cylinder firingprioritization algorithm in the sequencer.

By way of example, a simple sequencer designed for use in amulti-cylinder engine may be programmed to only fire a cylinder that wasfired during its previous firing opportunity unless more than adesignated number of requested firings (e.g., more than one or tworequested firings) are queued in the sequencer. Alternatively, thesequencer may be programmed to delay a requested firing for up to adesignated number of firing opportunities (e.g., up to 2 or 3 firingopportunities) if it can be satisfied by firing a cylinder that wasfired the previous round. These embodiments are merely intended asexamples of the types of considerations that might go into thedevelopment of the sequencing logic. It should be appreciated that theappropriate logic may vary significantly between different engines andbased on different design priorities. Of course, significantly moresophisticated logic may be, and typically would be incorporated into thesequencing algorithm. As a general rule, in embodiments that seek toreduce wall wetting losses it is desirable to design the sequencer in amanner that ensures that a significant majority of the actual firings ofthe firings occur in working chambers that were fired during theirprevious working cycle. By way of example it may be desirable to ensurethat at least 75% of the firings occur in working chambers that werefired during their previous working cycle, even when less than 50% ofthe working chambers are actually fired.

Another firing control approach that reduces wall wetting losses and thecorresponding emission increases will now be described. In thisembodiment, instead of randomizing all of the cylinders, only onecylinder (or a small subset of the cylinders) is randomized at any giventime. The other cylinders are either fired all of the time, or not atall. For the purpose of illustration, consider a scenario in which a sixcylinder engine is being operated in a manner that requires the outputof two and a half (2½) cylinders operating at an optimized efficiency(e.g., at their maximum compression and an optimized air/fuel ratio). Intheory, the appropriate amount of power could be delivered by firing twoof the cylinders all of the time and a third cylinder half of the time.If a relatively modest amount of additional power is required, then thethird cylinder may be controlled to fire a higher percentage of the timeto increase the power output of the engine to meet the need. If a littleless power is required, then the third cylinder may be fired a lowerpercentage of the time to meet the engine's reduced power requirement.If a request is made for more power than can be delivered by the threecylinders firing all of the time, then three cylinders may be fired allof the time and another cylinder (e.g., a fourth cylinder) may becontrolled to delivered the additional power required. As more power isrequired, additional cylinders may be added to the fired set ofcylinders. As less power is required, cylinders may be removed from thefired cylinder set. This approach to sequencing is generally referred toherein as a single cylinder modulation skip fire approach.

One advantage of the single cylinder modulation skip fire approach isthat it tends to significantly reduce wall wetting losses and thecorresponding reduction in fuel efficiency and increased emissionsissues that occur in certain types of engines (e.g. port injectedengines). A side benefit is that the single cylinder modulation skipfire approach tends to have good vibration characteristics (i.e., ittends to generate less vibrations than many other firing patterns). Thisis believed to be due the fact that the frequency of variation in thefiring pattern is reduced (e.g., reduced by a factor equal to the numberof cylinders that the engine has).

The described single cylinder modulation skip fire approach can beimplemented using a variety of different arrangements. For example, thesequencer 108 described above can readily be configured to deliver sucha firing pattern. The single cylinder modulation skip fire approach maybe implemented algorithmically or in logic in the sequencer while usinga drive pulse generator in accordance with any of the other describedembodiments. Alternatively, a different control architectureincorporating a specialized drive pulse generator that controls thefiring of only a subset of the available cylinders may be utilized. Byway of example, an alternative controller architecture that isparticularly well adapted for providing single cylinder modulation skipfire is described below with respect to FIG. 12.

As will be appreciated by those familiar with wall wetting issues,direct injection engines tend to avoid most of the wall wetting issuesthat are experienced by port injection engines (although even directinjection engines may experience the development of a small film of fuelon the cylinder walls). Thus, some of the advantages of the describedskip fire variable displacement engine are more pronounced with directinjection engines than port injection engines. However, with goodmanagement of the wall wetting issue, port injection systems can getefficiencies that are close to the efficiencies that are available todirect injection systems.

Fuel Control Processor

The described control can be implemented in a wide variety of differentmanners. It can be accomplished using digital logic, analog logic,algorithmically or in any other appropriate manner. In some embodimentsthe continuously variable control logic will be build into the enginecontrol unit (ECU—sometimes also referred to as an ECM—engine controlmodule). In other embodiments, the continuously variable displacementmode control logic can be built into a firing control co-processor or aco-processing unit that is arranged to work in conjunction with anexisting engine control unit.

It is anticipated that as the technology develops, the continuouslyvariable displacement mode control logic will be integrated into theengine control units that are provided with new vehicles or engines.This is particularly beneficial because it allows the ECU to readilytake advantage of all of the features of the engine that are availableto improve engine performance using the continuously variabledisplacement mode.

New ECUs that incorporate the continuously variable displacement modecan also be developed for vehicles that are on the road today (and forother existing engines and/or engine designs). When such ECUs aredeveloped the existing engines can readily be retrofitted by simplyreplacing the existing ECU with an improved ECU that incorporates thevariable displacement mode.

Alternatively, as will be appreciated by those familiar with currentautomotive engine control design—the engine control units in most latemodel automobiles are arranged such that third party devices caninterface with the engine control unit. These interfaces are oftenprovided, at least in part, to facilitate engine diagnostics—however, avariety of third parties products such as turbochargers, superchargers,etc. include control co-processors that have been designed to utilizesuch interfaces to work with the engines without voiding themanufacturer's warranty. These interfaces can be used advantageously toallow a low cost firing control co-processor that incorporates thecontinuously variable control logic to be installed as a retrofit togreatly improve the fuel efficiency of cars on the road today.

Firing Control Co-Processor

Referring next to FIG. 6 an engine control architecture that includes afiring control co-processor (sometimes referred to as a fuelco-processor) in accordance with one embodiment of the present inventionwill be described. The engine control system 300 includes a conventionalengine control unit (ECU) 305 and a firing control co-processor 320 thatincorporates continuously variable displacement mode control logic suchas the logic illustrated in FIG. 2. This design is particularly welladapted for retrofitting existing engines to incorporate the describedcontinuously variable displacement operating mode.

As will be appreciated by those familiar with the art, the designs ofthe existing ECUs and their respective interfaces vary significantly andaccordingly, the firing control co-processor must be adapted anddesigned to work with the particular ECU provided for the engine.Conceptually, the ECU typically includes an input cable 325 having aplurality of input lines that deliver the signals and sensor inputsrequired by the ECU and an output cable 327 that includes a plurality ofoutput lines that deliver the control and other outputs provided by theECU to other devices. In practice, the input and output cables may beintegrated into a single cable bundle or multiple bundles that mix inputand output lines, and/or may include some duplexed I/O lines.

Most late model automotive engine control units (ECUs) have externalinterfaces that permit third party devices to interact with the ECU.Often, this interface takes the form of a diagnostic interface. The ECU300 in the embodiment illustrated in FIG. 6 includes an externaldiagnostics interface 310 and the firing control co-processor 320communicates with the ECU through the diagnostic interface.Specifically, an ECU bus cable 331 connects the firing controlco-processor 320 to the diagnostic interface 310. The input cable 325 isconnected to a splitter 333 that delivers the input signals to both theECU 305 and the firing control co-processor 320. Therefore, theco-processor has all of the information available to it that isavailable to the ECU. When operating in the continuously variabledisplacement mode, the firing control co-processor communicates with theECU over the ECU bus cable 331 and overrides the throttle and fuelinjection level instructions calculated by the ECU and instead ordersthe firings and throttle positions determined to be appropriate by thefiring control co-processor. The co-processor also overrides otherinputs (such as the oxygen sensor input) as appropriate to insure thatthe rest of the engine's systems run correctly.

Another firing control co-processor embodiment is illustrated in FIG.11. In the illustrated embodiment, the engine control system 300(a)includes a conventional engine control unit (ECU) 305, a firing controlco-processor 320(a) that incorporates continuously variable displacementmode control logic and a multiplexer 342. In this embodiment, the firingcontrol co-processor 320(a) (in addition to the ECU 305) includes a setof injector drivers (one for each of the fuel injectors) so that thefiring control co-processor itself can drive the fuel injectors. In thisarrangement, the ECU 305 and the firing control co-processor 320(a)operate in parallel, with each receiving inputs from the input cable 325and both determining the appropriate engine control, which are fed tomultiplexer 342. When the engine is operating in the continuouslyvariable displacement mode, the multiplexer 342 is directed to onlydeliver the signals received from the firing control co-processor 320(a)to the fuel injectors (and any other components controlled by the firingcontrol co-processor). Any time the engine is taken out of the variabledisplacement mode, the multiplexer 342 is directed to only deliver thesignals received from the ECU to the fuel injectors (and othercomponents). Any components that are controlled by the ECU in both thenormal and variable displacement operating modes are always controlleddirectly by the ECU.

It should be appreciated that fuel injector drivers can be relativelyexpensive to produce in part because they are (in the context of theengine controller) relatively high powered devices. Therefore, thedescribed multiplexing before the injector drivers is a desirablefeature. Indeed, it is particularly desirable to multiplex at the logiclevel (that is before high voltage or high power signals are involved).

In the embodiment of FIG. 11, the firing control co-processor 320(a)communicates with the ECU over ECU bus cable 331 through the diagnosticinterface 310 and is arranged to override any input signals (such as theoxygen sensor signal) that need to be corrected for when the engineoperates in the variable displacement mode.

Referring next to FIG. 15 another engine control architecture thatincludes a firing control co-processor in accordance with yet anotherembodiment of the present invention will be described. As in previousembodiments, sensor and other inputs destined for the ECU 305 are splitby a splitter 337 and concurrently provided to the fuel coprocessor 449.The output control signals from both the ECU 305 and the fuelcoprocessor 449 are then provided to a multiplexer 454.

In one embodiment, the fuel coprocessor 449 includes a fuel mode controlmodule 450. The fuel mode control module 450 determines whether or notthe engine should be operated in the continuously variable displacement(skip-fire) mode. The output of the fuel mode control module 450 can bea select line 452 that controls the multiplexer 454.

In the embodiment described with reference to FIG. 15, the multiplexer454 is implemented at the logic level. That is, the low-voltage digitalsignaling lines are provided directly from the ECU and the fuelcoprocessor 449 to the multiplexer 454. The select line 452 controlswhich set of output signals are allowed through by the multiplexer 454.Voltages of such digital logic lines are generally below 6V.

The number of signals to be multiplexed by the multiplexer 454 can varyaccording to implementation. In the example shown in FIG. 15, only theoutputs for spark and fuel injection are shown, and the number of thoselines will also vary according to the number of cylinders of theparticular engine. The width of the select line 452 will be dependent onthe number of control logic lines being multiplexed.

The output of the multiplexer 454 is provided to the spark plug drivers460 and the fuel injector driver(s) 456. The spark plug drivers 460 neednot be aware whether their input control signal originates with the fuelcoprocessor 449 or with the stock ECU 305. The spark plug drivers 460will use the input control signal and generate the proper electricimpulse for the spark plugs to be fired. Similarly, the fuel injectordrivers 456 need not be aware whether their input control signaloriginates with the fuel coprocessor 449 or with the stock ECU 305. Thefuel injector drivers 456 will use the input control signal and generatethe proper electric impulse to operate the one or more injectors to beutilized.

Another arrangement for a fuel coprocessor 449 is shown in and nowdescribed with reference to FIG. 16. In this embodiment, the outputsignals of the fuel coprocessor 449 and the ECU 305 are first providedto the drivers controlled by these signals. For example, the fuelinjection control signals from the ECU 305 are provided to fuelinjection drivers 470, while the fuel injection control signals from thefuel coprocessor 449 are provided to fuel injection drivers 472.Similarly, the spark plug control signals from the ECU 305 are providedto spark plug drivers 476, while the spark plug control signals from thefuel coprocessor 449 are provided to spark plug drivers 478.

The higher voltage driver control signals are then provided tomultiplexer 474, which is controlled by the fuel mode control module 450using the select line 452 as set forth above.

FIG. 17 illustrates some of the possible input and output signals of anexample fuel coprocessor 449. Some of the input signals may be usedexclusively in the determination of a skip-fire firing pattern, someinput signals may be used exclusively to determine whether to operate inthe continuously variable displacement mode (for example by the fuelmode control module 450), and some input signals may be used for bothpurposes. Yet other input signals may be provided to the fuelcoprocessor 449 to be adjusted or overridden prior to delivery to theengine control unit.

Use of the accelerator as an input for a drive pulse generator of thefuel coprocessor 449 has been discussed above. The accelerator inputsignal can be provided as a pedal, lever, or other accelerator positionsensor. In some applications, an accelerator may be popularly referredto as a throttle, but the actual throttle position sensor is a separateinput to the fuel coprocessor 449.

Some of the other inputs for the fuel coprocessor 449 include one ormore lambda sensors—also referred to as oxygen or O2 sensors—crankshaftand camshaft angle sensors, coolant, intake and exhaust gas temperaturesensors, a throttle position sensor that senses the position of thebutterfly valves, a mass air flow sensor, and intake and exhaustmanifold pressure sensors. Additional input signals can include clutch,brake, and cruise control sensors. Clutch and brake sensors generallyreport a binary status (engaged/disengaged) for these vehicle controls.Generally, most of these sensors output an analog signal representingthe parameter sensed over time, but digital implementations of mostsensors is possible.

In one embodiment, the fuel coprocessor 449 outputs control signals tothe fuel injection drivers and the spark plug drivers. The continuouslyvariable displacement mode is implemented using these control signals toidentify which injectors and spark plugs are to be actuated on aworking-cycle by working-cycle basis.

Other outputs of the fuel coprocessor 449 can include replicated andoverwritten sensor signals. For example, an input sensor signal may needto be provided to the ECU 305, if the fuel coprocessor 449 is inlinewith the ECU 305. Furthermore, as set forth above, some sensor readingsmay need to be overwritten—or spoofed—before providing them to the ECU305 in order to keep the ECU 305 from responding to a conditionpurposefully created by the fuel coprocessor 449.

Another output of the fuel coprocessor 449 is the fuel mode controlsignal that indicates whether to operate in the continuously variabledisplacement mode. As shown in FIGS. 15 and 16, this signal can be usedto control a multiplexer 454 that selects between various control linesfrom the ECU 305 and the fuel coprocessor 449.

Furthermore, the fuel coprocessor 449 can include several input/outputinterfaces such as a user interface to perform diagnostics, dataanalysis, and setup and configuration of the fuel coprocessor 449, andFPGA programming interface to allow for low level configuration of thefuel coprocessor 449 if it is implemented using an FPGA(field-programmable gate array). The fuel coprocessor 449 can alsoinclude an expansion bus to allow the connection of additionalperipheral vehicle control or analysis devices.

The firing control co-processor may be implemented as a single chipsolution, a chip set, a board level solution. For example, in oneembodiment, the firing control co-processor may include a motherboardand a daughterboard that interfaces with the motherboard. Conceptually,the motherboard is intended to be a relatively generic engine controllerthat can be used with a wide variety of different engines. Thedaughterboard is intended to be a customized unit for use with aparticular engine and is designed to provide the appropriate interfacebetween the specific engine and the motherboard. Preferably, themotherboard and daughterboard would each be implemented as a single chipsolution. However, if that level of integration is not achieved, one orboth can be implemented as a chip set or at the circuit board level. Themotherboard/daughterboard architecture is advantageous in thatfacilitates more rapid development of fuel processors for differentengines since the motherboard, which provides the core functionalitydoes not need to be redesigned for use with different engines. Rather,only the daughterboard needs to be adapted for use with a particularengine or vehicle, etc.

Although specific wirings of the firing control co-processor areillustrated in FIGS. 6 and 11, it should be appreciated that a widevariety of other wirings could be utilized. For example, the splitter333 may be designed to only deliver some of the input signals to thefiring control co-processor 320, since some of the input signals may notbe relevant to the firing control co-processor's operation. Additionallyor alternatively, input signals that are intended to be modified by thefiring control co-processor may be wired to first be input to theco-processor and then a (potentially) modified signal may be fed fromthe firing control co-processor to the ECU. That is, the firing controlco-processor may intercept some or all of the input signals and modifysome of those signals as appropriate prior to their delivery to the ECU.

In still other embodiments some or all of the output lines may beconnected to the fuel processor rather than the ECU. This isparticularly appropriate in implementations in which the firing controlco-processor is designed to determine the firing pattern in alloperations of the engine.

In most of the firing control co-processor embodiments described abovethe firing control co-processor is created as a separate device from theengine control unit. Such an arrangement is well suited for manyapplications. However, in the long run it would be desirable toincorporate the described skip fire variable displacement control intothe ECU chip. Because the logic needed to implement the described skipfire variable displacement approach is relatively specialized but thesame logic blocks can be used to control a variety of different engines,in many applications, it may be desirable to integrate a firing controlco-processor block into a single integrated circuit die that alsocontains all of the other ECU functionality. This can be analogized tothe way that some microprocessor chips integrate a math co-processorinto the same die. The integrated ECU/firing control co-processorarchitecture can help further reduce the costs of implementing thedescribed skip fire engine control.

Electronic Valves—and Operating on Half Cycles

In conventional 4-stroke reciprocating piston engines the working cycleof each piston can only begin after every second reciprocation of thepiston (e.g., after 0, 2, 4, 6, 8 . . . reciprocations of the piston).In engines that utilize a conventional camshaft to open and close thevalves, the same is true in the continuously variable displacement mode.That is, the intake valves can only be opened every other reciprocationof the crankshaft even when one or more working cycles are skipped.However, some more recent engine designs have incorporated electronicvalves (i.e., valves that are opened and closed electronically ratherthan mechanically). In such engines it is possible to open the valves atany desired time. When an engine having electronic valves is operated ina variable displacement mode that skips working cycles of the engine,there is no inherent need to limit the initiation of working cycles toevery other reciprocation of the engine. That is, rather thanrestraining the controller to skipping integer numbers of working cycles(e.g., 1, 2, 3 . . . working cycles) the controller may be arranged toskip half working cycles as well (e.g., ½, 1, 1½, 2, 2½, 3 . . . workingcycles). This can help both smooth and improve the precision andresponsiveness of the engine. It can also be beneficial from a vibrationcontrol standpoint because the availability of starting on a half cyclecan help break up patterns that can develop in the drive pulse signal.For example, if the simple sequential sequencer discussed above withrespect to FIG. 4 is used to generate a firing pattern, the sequencercan readily be adapted to allow the “next” working cycle to begin atwhat would traditionally be considered a midpoint of a working cycle. Ina 4-stroke piston engine this means that a working cycle can beinitiated after any number of reciprocations of the piston—includingafter odd numbers of reciprocations of the piston. In contrast, theworking cycles of traditional 4-stroke piston engines can only beinitiated after an even number of reciprocations of the pistons. Ofcourse the same principles apply to piston engines having longer (e.g.,6 stroke) working cycles.

The half cycle (or partial cycle) initiation of a working cycle approachcan be used in any engine that has the ability to selectively open andclose the valves at any time. Engines with electronically controlledvalves are the only commercially available engines that currently havesuch abilities. However, if other valve control technologies thatutilize magnetic, electromagnetic, mechanical, or other suitabletechniques for controlling the opening and closing of the valves aredeveloped, they can readily be used as well.

When control over the timing of the opening and closing of the valves isprovided, the valves may be held closed during skipped working cycles asthey are in most current commercially available variable displacementengines. Alternatively, it may be desirable to open and close the valvesin a different sequence than normal fired cylinders to help reducepumping losses.

It should be appreciated that the ability to begin a working cycleduring any reciprocation of the engine is believed to be very differentthan operations possible in current engine designs.

Sigma Delta Controller with Variable Clock

As discussed above, a variety of adaptive predictive controllersincluding a variety of different sigma delta controllers may be used inthe drive pulse generator 104. As mentioned above, a variable clock canbe used in the sigma delta control circuit 202. Using a variable clockthat is based on engine speed for the comparator has the advantage ofbetter synchronizing the output of the sigma delta control circuit withthe engine's operation. This, in turn can help simplify the overalldesign of the synchronizer portion of the drive pulse generator.

Referring next to FIG. 7 an alternative embodiment of the drive pulsegenerator that incorporates a variable clock sigma delta controller202(b) will be described. The drive pulse generator 104(b) has astructure very similar to the drive pulse generator 104(a) describedabove with reference to FIG. 3. However, in this embodiment, the clocksignal 217(b) provided to the comparator 216 is a variable clock signalthat is based on engine speed. The clock signal is generallysynchronized with the engine speed by utilizing a phase lock loop 234that is driven by an indication of engine speed (e.g., a tachometersignal). As described above—it is desirable for the sigma deltacontroller to have a sampling rate, and therefore an output signal240(b) frequency that is substantially higher than the desired frequencyof the drive pulse pattern outputted by the synchronizer 222. Again, theamount of oversampling can be widely varied. As indicated above,oversampling rates on the order of 100 times the desired drive pulsefrequency work well and accordingly, in the illustrated embodiment adivider 252 is arranged to divide the clock signal 230 provided to thesynchronizer logic by a factor of 100, and the output of the divider 252is used as the clock for comparator 216. This arrangement causes theoutput of the comparator 216 to have a frequency of 100 times thefrequency of the drive pulse pattern that is output by the synchronizer222. Of course, in other embodiments, the divider can be arranged todivide the signal by any integer number that provides sufficientoversampling. In other respects, the other components of the sigma deltacontroller 202 may be the same as described above with respect to FIG.3. Any of the designs of the synchronizer 222 and/or the sequencer 108discussed above or a variety of other synchronizer and sequencer designsmay also be used with variable clock sigma delta controller 202(b). Oneadvantage of synchronizing the output of the sigma delta controller 202with the engine speed is that it permits simpler synchronizer designs.

Sigma Delta Controller with Multi-Bit Comparator Output

As discussed above, in some embodiments it might be desirable to utilizereduced energy cylinder firings. The reduced energy firings may be usedfor a variety of purposes including helping reduce the probability ofundesirable vibrations being generated by the engine, to help fine tunethe control, to facilitate operation during idling or at low enginespeeds, etc. To facilitate the reduced energy firings, the drive pulsegenerator 104 may be arranged to produce some partial drive pulses inthe drive pulse pattern to indicate when reduced energy firings aredesired.

Referring next to FIG. 8, a modification of the sigma delta controllerthat outputs a multi-bit signal will be described. In the illustratedembodiment, the multi-bit output of the sigma delta controller is usedby the synchronizer 222 to generate partial drive pulses. In thisembodiment, the sigma delta controller 202(c) may have a design similarto any of the previously described embodiments—however the comparator216(c) is arranged to output a multiple bit signal 240(c). In theprimary described embodiment, the comparator 216(c) is two bitcomparator and accordingly the output signal 240(c) is a two bit signal.However, in other embodiments higher bit comparators may be providedwhich would result in higher bit output signals 240(c). The actualnumber of bits used can be varied to meet the needs of any particularapplication.

The various states of the multi-bit output signal can each be set tohave an associated meaning. For example, in a two bit comparator—a 0,0output signal might reflect a zero output; a 1,1 output signal might bea full signal output—e.g. one; a 0,1 might be arranged to represent a ¼signal; and a 1,0 might be arranged to represent a ½ signal. Of course atwo-bit comparator may readily be designed to have the various statesrepresent different levels than the 0, ¼, ½, and 1 levels suggestedabove. In higher order comparators, many more states would be available.For example, in a three-bit comparator, 8 states would be available; ina four-bit comparator 16 states would be available, etc.

As will be appreciated by those familiar with multi-bit comparator sigmadelta design, the comparator 216(c) may be configured to output some(generally controllable) percentage of the non-zero samples asintermediate level signals. These intermediate signals can be treated bythe synchronizer 222 and the sequencer 208 as corresponding to requestsfor partial energy drive pulses and reduced energy firings. For example,if the sigma delta controller 202(c) outputs a string of one half (½)level output signals that is sufficiently long to cause the synchronizer222(c) to generate a drive pulse—the outputted drive pulse can be a halfenergy drive pulse. The half energy drive pulse, in turn, is used by thesequencer 108(c) to direct a half energy firing. The same type of logiccan be used for other (e.g. quarter) level output signals. When thecomparator output is a multi-bit output, the synchronizer and thesequencer can readily be arranged to handle and output correspondingmulti-bit signals.

It should be appreciated that multi-bit comparator sigma deltacontrollers are typically arranged to generate extended strings ofsymbols having the same state. Therefore, any of the general sequencerlogics described above can be used to output drive pulses having thesame state as the signal 240(c) fed to the synchronizer 222(c). That is,the drive pulse outputted by the synchronizer may be arranged to matchthe level of the signal 240(c) input into the synchronizer that causedgeneration of the drive pulse.

Again, it should be appreciated that the logic of the synchronizer222(c) can be optimized and/or widely varied to meet the needs of anyparticular application. In some applications it may be desirable toprovide more sophisticated synchronizer logic to handle specificsituations in a desired manner. For example, different logic may beprovided to handle situations where the signal 240 inputted to thesynchronizer transitions from a higher level to a lower non-zero levelthat is held through the end of a drive pulse period. In someimplementations it may be desirable to have the drive pulse output atthe lower level in such situations. Similarly, when the signaltransitions from a lower non-zero level to a higher non-zero level, itmay be desirable to provide specific logic to dictate what happens insuch circumstances

It should be appreciated that the thermodynamic (and fuel) efficiency ofthe engine will be best when the working chambers are operated at theiroptimal efficiency. Therefore, it is generally undesirable to have toomany reduced energy firings unless there is a specific need for them.However, there are some situations where reduced energy firings may bedesirable from a control standpoint. Generally, the number of reducedenergy firings is preferably relatively low (e.g., less than 20% or morepreferably less than 10%) when the engine is operating at moderate tohigher engine speeds. The comparator 216 (c) can readily be designed tooutput such percentages of intermediate signals in an effort to insurefinal number of reduced energy firings is within a desired range.

The comparator and/or synchronizer logic may also be arranged to takeengine speed and/or the operational state of the engine (e.g. coldstart, etc.) into account when determining the percentage ofintermediate comparator output signals and/or partial drive pulses tooutput. For example, when the engine is idling or cold starting, it maybe desirable to only output intermediate signals from the comparator sothat only partial drive pulses are generated in those situations. Itshould be appreciated that the comparator and/or synchronizer logic maybe arranged to accommodate a wide variety of different desiredoperational rules.

Differential Sigma Delta Controllers

In still other embodiments differential sigma delta controllers may beused. In such embodiments the synchronizer can be arranged to generatedrive pulse patterns based on the differential signals outputted by thesigma delta controller. A wide variety of different differential sigmadelta controllers may be used and generally they may include thevariable clock and/or multi-bit comparator output features discussedabove when desired. One advantage of differential sigma deltacontrollers is that they can often be configured to provide evensmoother performance than a corresponding non-differential sigma deltacontroller.

In some circumstances it may be advantageous to operate in a mode thatwe refer to as implied differential sigma delta. In such a mode, eitherthe synchronizer or the sequencer (or both) are constrained to limit thedrive pulses and/or chamber firings to one at a time. That is, in thismode, each fired working chamber is constrained to be followed by askipped firing opportunity (and/or each drive pulse is constrained to befollowed by null pulse). This implied differential sigma delta isparticularly useful when the engine is operating at a level wheresignificantly less than 50% of the firing opportunities are required todeliver the desired engine output since it can help further smooth theengine output by insuring that two firings do not immediately follow oneanother when the required output is relatively low.

It should be appreciated that automotive engines are often operatedunder conditions that require a relatively small fraction (e.g., 10-25%)of the power that the engine is capable of delivering. The implieddifferential sigma delta approach is particularly useful under thesetypes of operating conditions. In some implementations it may bedesirable to operate the engine in an implied differential sigma deltamode during some operational conditions, in a different type ofcontinuously variable displacement mode during other operationalconditions, and in a conventional operating mode during still otheroperational conditions. Of course, the number and nature of the variousoperational modes can be widely varied. Therefore, it should beappreciated that the engine controller may generally be arranged tooperate in a variety of different operational modes during differentoperational conditions.

The constraints provided by implied differential sigma delta may also bewidely varied. For example, when low engine outputs are required, theremay be instances when it is desirable to constrain the firings patternto skip at least two firing opportunities after each firing. In otherinstances it may be desirable to allow two firings to follow oneanother, but not three. In still other instances, it may be desirable torequire a firing any time a designated number of skips follow oneanother. Generally, it should be appreciated that the firing pattern fora particular engine may be constrained by the sequencer or thesynchronizers in a wide variety of manners that are determined to beappropriate to provide the desired engine output, and the constraintsmay be arranged to vary with the load placed on the engine, the overallratio of firings to skips, or any other factor that is appropriate forthe control of a particular engine.

Digital Sigma Delta Controllers

As mentioned earlier digital sigma delta controllers may also be used.One such embodiment is illustrated in FIG. 9, which illustrates adigital third order sigma delta control circuit 202(c). In thisembodiment, accelerator pedal position indicator signal is inputted to afirst digital integrator 304. The output of the first digital integrator304 is fed to a second digital integrator 308 and the output of thesecond digital integrator 308 is feed to a third digital integrator 314.The output of the third digital integrator 314 is fed to a comparator116 that may be arranged to operate in the same manner as either thesingle bit or multi-bit comparators described above with respect to theanalog sigma delta circuits. In the embodiment illustrated in FIG. 9,the first digital integrator 304 effectively functions as ananti-aliasing filter.

Negative feedback is provided to each of the three digital integratorstages 304, 308 and 314. The feedback may come from any one or anycombination of the output of the comparator 116, the output of thesynchronizer logic 222 or the output of the sequencer 126. Each stagefeedback has a multiplication factor of L, M, and N respectively.

Like the analog sigma delta control circuit described above, the primaryinput to the digital sigma delta control circuit may be an indication ofthe accelerator position 113 or any other suitable proxy for desiredoutput. As previously described, the desired output signal 113 iscombined with pseudo random dither signal 246 in the illustratedembodiment in order to reduce the possibility of generating undesirabletones.

The primary difference between analog and digital operation is that theintegrators in analog sigma delta are continuously active, whereas thedigital integrators are typically only active at the beginning of eachclock cycle. In some implementations, it may be desirable to run theclock at a very high speed much like the fixed and variable clocksdescribed above with respect to various analog sigma delta designs.However, that is not a requirement. Since the output that is ultimatelydesired has a frequency that is equal to the firing opportunities thatare being controlled, the clock may be synchronized with the firingopportunities which may eliminate the need for (or simplify the functionof) the synchronizer and/or the sequencer. Thus, when a digitalcontroller is used, the controller design can be simplified by runningthe clock at the frequency of the firing opportunities being controlled.

Although analog and digital controllers have been described, it shouldbe appreciated that in other implementations, it may be desirable toprovide hybrid analog/digital sigma delta controllers. In a hybridanalog/digital controller, some of the stages of the sigma deltacontroller may be formed from analog components, while others may beformed from digital components. One example of a hybrid analog/digitalsigma delta controller utilizes an analog integrator 204 as the firststage of the controller, in place of the first digital integrator 304.The second and third integrators are then formed from digitalcomponents. Of course, in other embodiments, different numbers of stagesmay be used and the relative number of analog vs. digital integratorsmay be varied. In still other embodiments, digital or hybriddifferential sigma delta controllers may be used.

Single Cylinder Modulation Skip Fire

Referring next to FIG. 12, an engine control unit 400 in accordance withyet another embodiment of the invention will be described. Thisembodiment is particularly well suited for use in implementing thesingle cylinder modulation skip fire approach described above andvarious variations of that approach. In the illustrated embodiment, anindication of the accelerator pedal position 113 (or other appropriateindicator of desired output) is provided to an optional low pass filter402. The low pass filter (which can also be utilized with any of theother described embodiments) is intended to smooth out very short (e.g.high frequency) variations in the desired output signal. These types ofvariations may be caused, for example, by jitter in a driver's footposition due to road vibrations or other causes. The low pass filter canbe used to reduce or eliminate such jitter and other unintended highfrequency variations in the input signal 113.

The filtered indication of the desired output is then supplied to aresidual calculator 404 that effectively divides the input signal by theavailable number of cylinders. For example, if the engine has sixcylinders, the input signal is conceptually divided by six. The residualcalculator may be scaled so that the result includes an integer and aremainder. In general, the integer output 406 may be used by thecontroller as an indicator of how many cylinders to fire all of the timeand the remainder output 407 may effectively be used to control themodulated cylinder. The divider is preferably scaled appropriately suchthat the output provides the desired power output range for the engine.For example, conceptually, it may be scaled such that when maximum poweris desired (e.g., when the accelerator pedal is fully depressed), thedivider outputs an integer equal to the number of cylinders in theengine with no remainder. Of course, in other implementations, thescaling may be different, non-linear dividers may be used as desiredand/or other components may be adjusted to compensate for scaling orother variations.

In the illustrated embodiment, the integer output 406 of the residualcalculator is supplied to an injection controller 440 and the remainderoutput 407 is supplied to a modulated working chamber controller 405.More specifically, the remainder is provided to a multiplier 410 that isincluded in a modulated working chamber controller 405. The multiplier410 multiplies the remainder signal by a factor equal to the number ofcylinders available to the engine. For example, in a typical sixcylinder engine, the multiplier may multiply the remainder by a factorof six. The output of the multiplier 410 is then used as the controlinput for a drive pulse generator. The drive pulse generator may takeany suitable form. By way of example, in the illustrated embodiment, thedrive pulse generator includes a predictive adaptive controller 420 thattakes the form of a digital third order sigma delta controller that issimilar to the digital sigma delta controller 202(a) described above,although it uses a different clock signal. Of course, in otherembodiments, the multiplier can be eliminated and the sigma deltacontroller 420 may be scaled appropriately to provide the desiredoutput.

In this embodiment, the output of multiplier 410 is inputted to a firstdigital integrator 304. If desired, an optional pseudo random dither maybe combined with the output of the multiplier before the first digitalintegrator 304. The output of the first digital integrator 304 is fed toa second digital integrator 308 and the output of the second digitalintegrator 308 is feed to a third digital integrator 314. The output ofthe third digital integrator 314 is fed to a comparator 116 aspreviously described. Since the design of sigma delta controller 420 isquite similar to the design described above with reference to FIG. 9, anexplanation of similar features is not always repeated. The output ofcomparator 116 is provided to a latch 430, which in turn delivers thedrive signal to injection controller 440. The comparator output is alsofed back as a negative input to the first digital integrator 304. Theclock signal provided to the sigma delta controller 420 and the latch430 is synchronized with the firing opportunities of the modulatedcylinder. With this arrangement the output of the latch 430 can be usedas the drive pulse pattern 442 for the modulated cylinder. Inembodiments that don't include a latch, the output of comparator 116 maydirectly be used as the drive pulse pattern. This eliminates the needfor a synchronizer as used in the embodiment of FIG. 9.

It is noted that in most of the previously described embodiments, a highfrequency clock is used. In contrast, the embodiment of FIG. 12 uses avery low frequency clock that is synchronized with the frequency of thefiring opportunities of the cylinder(s) that is/are being controlled.Therefore, if at any given the sigma delta controller 420 is controllingjust one cylinder, then the clock would have a frequency that issynchronized with the firing opportunities of the single cylinder beingcontrolled such that just one clock cycle occurs each firing opportunityof the controlled cylinder. In other embodiments, where the controller420 is controlling the firing of more than one cylinder (e.g. 2,cylinders, 3 cylinders, all of the cylinders, etc), the clock frequencymay match the frequency of the firing opportunities of all of thecontrolled cylinders.

In the illustrated embodiment the integer output 406 of residualcalculator 404 and the drive pulse pattern 442 signal are both providedto an injection controller 440. The injection controller 440 acts as asimplified sequencer and controls the fuel injection drivers 444. Thelogic of the injection controller is arranged to always fire a set ofcylinders equal to the number of cylinders identified by the integeroutput of the injection controller. Additionally, one cylinder is firedin the pattern dictated by the drive pulse pattern 442. The remainingset of cylinders is not fired. The specific cylinders in the firedcylinder set are preferably selected in a manner that provides goodengine vibration and thermal management characteristics. In manyimplementations it will be desirable to arrange the injection controller440 to periodically alter the cylinders in the fired cylinder set overtime. There are several potential benefits to periodically varying thespecific cylinders in the fired cylinder set. One consideration thatwill be important in some engine designs is the thermal management ofthe engine. It should be appreciated that there will be a significanttemperature difference between cylinders that are fired all of the timeand cylinders that are skipped all of the time. That difference isfurther amplified if relatively cold air is pumped through skippedcylinders. The temperature differences may also have an impact onemissions. Therefore, it may be desirable to sometimes alter thespecific cylinders in the skipped and always fired cylinder sets to helpinsure that the engine maintains an acceptable thermal balance.

There are other reasons for periodically varying the cylinders in thefired cylinder set as well. For example, it may be desirable to insurethat over time, all of the cylinders are fired roughly the same amount.This can help insure even wear characteristics of the engine and helpclean the unused cylinders. The specific cylinders in the variouscylinder sets can be changed relatively often (e.g., on the scale ofevery few minutes or more frequently), relatively infrequently (on thescale of each time the engine is turned off, hours of engine operation,etc.) or anything in between.

It should be appreciated that with the described approach, calls forrelatively small amounts of additional power can often be accommodatedby more frequently firing the single modulated cylinder. Similarly,calls for relatively small reductions of power can often be accommodatedby less frequently firing the single modulated cylinder. However, insome instances a call for additional or reduced power will have theeffect of changing the integer value calculated by the residualcalculator 404. In these instances, an additional cylinder may be added,or removed from the set of always firing cylinders. It should beappreciated that in some implementations, the sigma delta controller 420may have a latency that could adversely affect the “feel” of the enginewhen a transition is made adding or subtracting a cylinder from the setof always firing cylinders. The nature of the potential problem can beappreciated by considering a hypothetical situation in which onecylinder is operating all of the time and a second, modulated cylinderis operating 95% of the time (i.e., the integer output 406 of theresidual calculator 404 is “1” and the remainder output 407 of theresidual calculator 404 is effectively 0.95). When driving, an operatormay make a slight adjustment to the accelerator pedal increasing therequested power to a level “2.05” that causes the integer output 406 ofthe residual calculator 404 to increment to “2”, and the remainderoutput 407 of the residual calculator to fall to 5%. If left alone, thesigma delta controller would eventually adapt to the new requested powerlevel. However, the transient effect could be that too much power isdelivered for a short period because the controller has latency. Thiscan be imagined as if the controller was trying to continue to operateat a 95% firing frequency for a brief period while it is only intendedto be operating at a 5% firing frequency.

In order to improve the transient response of the controller whenincrementing or decrementing the number of cylinders in the set ofalways firing cylinders, the sigma delta controller can effectively be“reset” by applying a short burst of a higher speed clock signal to thesigma delta controller 420 in the period between firing opportunities ofthe modulated cylinder. This allows the integrators to adjust to the newlevel of requested power for the modulated cylinder. It should beappreciated that the resetting of the sigma delta controller 420 can beaccomplished in a wide variety of different manners. By way of example,one way to implement this approach is to provide a clock multiplexer 425that multiplexes the modulated cylinder firing opportunity clock signal423 with a high frequency clock signal 427 that is actuated by a resetsignal 429 sent from residual calculator 404 every time that the integercount of the residual calculator is incremented or decremented. Theburst may be significantly shorter than the period of the firingopportunity clock signal 423 and preferably has enough cycles to allowthe sigma delta controller 420 to fully adjust to the new requestedpower level. Since the digital electronics can readily operate at highspeeds (e.g. at clock rates in the kilohertz, megahertz, or higherfrequency ranges) while the firing opportunities of a single cylinderare typically at frequencies well under 100 Hz, there is ample time toreset the controller 420 between firing opportunities.

In this embodiment, the only output of the comparator that is utilizedby the latch is the comparator output that is active when the modulatedcylinder firing opportunity clock signal 423 triggers the latch. Ifdesired, the bursts can be timed such that the bursts can only occurbetween sequential firing opportunities. With this arrangement, all ofthe signals in the reset burst are ignored by the latch so that theburst never impacts the firing. However, this is not a requirement.

In the described embodiment, at any given time, only a single cylinderis modulated while each of the other cylinders is either always skippedor always fired. However, in other implementations, the enginecontroller 400 can be modified to modulate the firing of more than onecylinder (e.g., 2 cylinders, etc.) while the each of the other cylindersis either always skipped or always fired.

When the residual calculator 404 determines that more or fewer cylindersshould be in the “always fired” set, an appropriate signal is sent tothe injection controller 440, which makes the appropriate adjustments.The specifics of which cylinders are added to (or removed from) thealways fired set can be widely varied based on a variety of designconsiderations and the needs of any particular system. For example, insome implementations or situations, when adding a cylinder to the alwaysfired set, it may be desirable to designate the currently modulatedcylinder as the next “always fired” cylinder and then designate one ofthe cylinders in the skipped cylinder set as the “new” modulatedcylinder. In other implementations or situations, it may be desirable tosimply designate one of the cylinders in the skipped cylinders set asthe next “always fired” cylinder and to continue to modulate the samecylinder. In still other implementations or situations it may bepreferable to simply select a new set of always fired cylinders and anew modulated cylinder without any particular regard to the previousdesignations. Of course a wide variety of other factors can beconsidered as well in allocating the cylinders among the “always fired”,“skipped” and “modulated” cylinder sets.

During operation, the residual calculator 404 continuously monitors thedesired output signal 113 and continually divides the signal. Virtuallyany change in the desired output signal 113 will result in a change inthe remainder output signal 407 which is fed to the modulated workingchamber controller 405. The controller 405, in turn produces a drivepulse pattern that delivers the output designated by remainder outputsignal 407. Any time the integer value of the residual calculatorchanges, a reset signal is sent to clock multiplexer 425 which applieshigh frequency clock 427 to the sigma delta controller 420 for a shortperiod of time, thereby resetting the sigma delta controller andpermitting it to adjust to the new remainder level. The reset signal maybe triggered any time the integer output increments or decrements.

As discussed above, one potential issue that arises when operating inthe skip fire mode relates to the operation of the skipped cylinders. Ifthe valves open and close during the skipped working cycles, then air ispumped through the cylinder to the exhaust and the exhaust/emissionssystems must be designed to handle the excess oxygen in the exhaustgases. In some engines (e.g., engines with electronic valves), theopening and closing of the valves can be controlled on a working cycleby working cycle basis, which is ideal since it permits skippedcylinders to remain closed. However, in practice, very few vehicles onthe road today have electronically controlled valves (or otherwise havethe ability to control the opening and closing of the valves on aworking cycle by working cycle basis).

As discussed above, most commercially available variable displacementengines are designed to shut down selected cylinders in order to varythe displacement of the engine. When a cylinder is shut down, its valvesare typically not opened during the engine's intake or exhaust strokes.Although selected cylinders can be shut down, the response time of thedisengagement mechanism may prevent the cylinders from being activatedand deactivated on a working cycle by working cycle basis. Althoughtraditional variable displacement engines exhibit improved efficiencyrelative to ordinary engines, the engine output is still controlled byvarying the amount of air and/or fuel delivered to the active cylinders.Thus, their efficiency can be further improved by utilizing theoptimized skip fire techniques described herein. The engine control unit400 described with reference to FIG. 12 is also well suited for use withthese types of variable displacement engines. For example, if aparticular engine is capable of shutting down particular cylinders orparticular banks of cylinders, then the unused cylinders can be shutdown during operation in the single cylinder modulation skip fire mode.This can further improve the emissions characteristics of the controlledengine, in part because the amount of excess oxygen in the exhaust isreduced. Shutting down skipped cylinders can also reduce pumping lossesrelative to engines that are not capable of shutting down any cylinders,thereby facilitating improved thermodynamic efficiency as well.

As will be appreciated by those familiar with the art, certain existingvariable displacement engines are capable of shutting down selectedcylinders, either individually, or in banks. For example, Hondacurrently produces a six cylinder variable cylinder management enginethat is capable of shutting down 2, 3, or with slight modification, 4cylinders. Other engines are arranged to shut down cylinders in pairs orin other banks. The single cylinder modulation skip fire controller 400is well suited for use with such engines because some, and potentiallyall, of the unused cylinders may be shut down thereby reducing bothexcess oxygen in the exhaust and pumping losses. In such arrangementsthe injection controller 440 may be arranged to additionally switch theengine between operational states as would be appropriate based on theengine design.

Throttled Skip Fire

In many of the embodiments discussed above, efforts are made to optimizethe conditions in the working chambers that are actually fired. Althoughthe use of optimized firings has a number of advantages, there are anumber of circumstances where it may be desirable to allow moreextensive control of the throttling. The general controllerarchitectures described above can be modified to provide good control ofthe engine output while allowing more flexible control of the throttlesettings. One such embodiment will be described next with reference toFIG. 19( a).

In the embodiment illustrated in FIG. 19( a), the engine firingcontroller 500 includes a drive pulse generator 510, an engine torquefraction calculator 515, a cylinder torque fraction calculator 530, amultiplier 535, an engine settings control unit 540 and a cylindercontroller 545. The described architecture can be incorporated into anengine control unit (ECU), or it may be designed as a separate firingcontroller that works in conjunction with a conventional engine controlunit (ECU). If implemented as a separate firing controller, the firingcontroller may communicate with the ECU either directly or over avehicle bus such as a Controller Area Network (CAN) bus, a LocalInterconnect Network (LIN) bus or any other suitable network bus orconnection.

The engine firing controller 500 receives an input signal indicative ofa desired engine output. As discussed above, the desired output signalmay come from any suitable source that can be considered a reasonableproxy for a desired engine output. For example, in the primary describedembodiment, the input signal is an accelerator pedal sensor signal takendirectly or indirectly from an accelerator pedal position sensor 161,which is indicative of accelerator pedal position. In the illustratedembodiment, accelerator pedal position sensor signal 503 is processed bypre-processor 504 to provide the desired output signal 505. Thepreprocessing may be arranged to scale the accelerator pedal position toa range that is appropriate for use by the engine torque fractioncalculator 515 and to provide any other desired preprocessing asdiscussed above with respect to other embodiments.

The desired output signal 505 (a preprocessed version of the acceleratorpedal sensor signal in the illustrated embodiment) is fed directly orindirectly to an engine torque fraction calculator 515. The torquefraction calculator is conceptually arranged to determine the fraction(percentage) of the total available engine torque or power that is beingrequested by the operator. In this implementation, the accelerator pedalsensor signal 505 is conceptually treated as a request for a designatedportion of the available engine output although—as should be apparentfrom the description above—the controller can readily be modified totreat the input as a request for a designated amount of torque, etc. Theengine torque fraction calculator 515 essentially translates theaccelerator pedal sensor signal into a signal 517 that can be used bythe remainder of the controller to deliver the requested engine output.In the illustrated embodiment, the signal 517 outputted by the enginetorque fraction calculator is indicative of the fraction or thepercentage of the cylinders that would need to be fired at their optimalconditions to deliver the desired output (e.g. 24%, 37%, etc.). Thissignal is therefore sometimes referred to herein as the optimal firingfraction signal 517. The optimal firing fraction signal 517 can beeither a digital signal or an analog signal depending upon the nature ofthe drive pulse generator 510.

The engine torque fraction calculator 515 may be arranged to correlatethe accelerator pedal position to desired engine output in any way thatprovides desirable engine response characteristics. For example, in amany implementations, a fully released pedal position may correspond tothe torque fraction appropriate for running the engine at idle and afully depressed pedal position may correspond to a 100% torque fraction(i.e. full power request). In a simple implementation, intermediatepedal positions may be scaled linearly between the idle torque fractionand 100%. In other implementations, the engine torque fractioncalculator 515 may be arranged to use lookup tables or to utilize morecomplex functions to calculate the torque fraction. Such approaches maybe used to facilitate more customized responses to pedal position.

As suggested above, the optimal firing fraction signal 517 effectivelyindicates the percentage of the cylinder that would need to be fired attheir optimal efficiency in order to provide the desired output.However, if the current mass air charge or manifold pressure is lessthan the mass air charge/manifold pressure that would provide theoptimal output based on the current RPM, then each cylinder firing willtypically provide less than an optimal amount of torque. In suchcircumstances, a higher percentage of the cylinders must be fired inorder to provide the desired output. The actual cylinder torque fractioncalculator 530, inverter 533 and multiplier 535 cooperate to scale theoptimal firing fraction signal 517 into a firing fraction signal 536that is appropriate for used as the input signal for drive pulsegenerator 510. For example, if the throttle is set in a manner thatprovides 50% of the torque provided by an optimal firing at the currentengine speed then approximately twice as many firings will be requiredto deliver the desired output as compared to an environment in whichoptimal firing are used. The actual cylinder torque fraction calculator530 and multiplier 535 cooperate to provide such scaling of the optimalfiring fraction signal 517. Thus, these components effectively cooperateto form a firing fraction calculator.

More specifically, actual cylinder torque fraction calculator 530 (alsoreferred to as a working chamber output calculator) is arranged todetermine the relative amount of torque that is obtained from eachcylinder firing as compared to the amount of torque that would beprovided by an optimal firing. For example, if the throttle and otherengine parameters are set in a manner that provides 50% of the torqueprovided by an “optimal” firing at the current engine speed, then theoutput of the actual torque fraction calculator would be 0.5 (i.e., onehalf). This output signal 531, which may be thought of as the actualcylinder torque fraction signal, is provided to an inverter 533 whichoutputs a multiplier signal 534 that is the reciprocal of the actualtorque fraction signal. The multiplier signal 534 is indicative of theamount the optimal firing fraction needs to be scaled in order todeliver the desired power under the current operating environment of theengine (e.g., current manifold pressure, etc.).

Multiplier signal 534 is fed to multiplier 535 which multiplies theoptimal firing fraction signal 517 by the designated amount to provide afiring fraction signal 536 that is appropriate for used as the inputsignal for drive pulse generator 510. With this arrangement, the firingfraction signal 536 inputted to the drive pulse generator isappropriately scaled for the current operational condition of theengine.

It should be appreciated that the scaling provided by the combination ofcylinder torque fraction calculator 530 and multiplier 535 allows thedrive pulse generator 510 to deliver a consistent response to adesignated pedal position and to variations of the pedal position evenat different throttle positions—which is considered to be highlydesirable attribute for many implementations of the engine firingcontroller 500.

In some embodiments, the cylinder torque fraction calculator 530 may bearranged to compare the actual output of a cylinder to a referenceoutput. The actual output may be a value derived from a sensor such as atorque sensor, a calculated value based on current engine operatingconditions, a value retrieved from a lookup table (one or moredimensional) based on one or more current operating conditions such asengine speed, or it may be obtained in any other suitable manner.Similarly, the reference output may be fixed value, a calculated valuebased on current engine operating conditions, a value retrieved from alookup table (one or more dimensional) based on or more currentoperating conditions, or it may be obtained in any other suitablemanner.

Although a particular implementation has been described for scaling theaccelerator pedal position signal 503 to a level appropriate for use asan input signal for the drive pulse generator indicative of a firingfraction appropriate for use in the current engine operating conditions,it should be appreciated that the same result can be obtained using awide variety of other specific architectures. In still otherimplementations, the scaling provided by the actual cylinder torquefraction calculator 530 and multiplier 535 (which is effectivelyimplemented as a feed forward approach in the described embodiment)could readily be handled within the drive pulse generator feedback loopby appropriately scaling the feedback signals used within the drivepulse generator 510 as described elsewhere in this patent with respectto other embodiments.

In the embodiment described above, the actual torque fraction calculator530 determines the relative amount of torque that is obtained from eachcylinder firing as compared to the amount of torque that would beprovided by an optimal firing. Depending on the nature of the controldesired, the reference value utilized by the actual cylinder torquefraction calculator 530 in its calculation may be a fixed value, a valuethat varies as a function of engine speed, or a value that varies as afunction of multiple variables. Although the selection of the referencevalue will have some impact on the response of the engine, thecontroller itself can work well with any of these approaches. It shouldbe appreciated that in some cases, an actual firing may provide slightlymore torque than is expected by an actual firing. This does not causeproblems with the control because the multiplier 535 compensates forsuch situations just as easily as it would when the amount of torqueprovided by each firing is less than the reference value.

The drive pulse generator 510 is generally arranged to determine thefirings that are appropriate in the current state of the engine todeliver the desired output. That is, it outputs a drive pulse signal 550that indicates when firings are appropriate to deliver the requestedoutput (e.g., the output requested by the driver by depressing theaccelerator pedal a designated amount). The design of the drive pulsegenerator may be widely varied and generally, any of the drive pulsegenerator designs described above may be used as the drive pulsegenerator 510. The drive pulse generator 510 uses feedback control, suchas adaptive predictive control to determine the firings that areappropriate to deliver the desired engine output. The drive pulse signal550 may be used directly or indirectly to direct the firings of specificcylinders. In the illustrated embodiment, no sequencer is provided sothe actual firing pattern is based directly on the drive pulse pattern.The drive pulse signal 550 is delivered to a cylinder controller 545which is arranged to control the delivery of fuel to the cylinders andto activate and deactivate cylinders based on the drive pulse signal.

The engine settings control unit 540 is arranged to determine the enginesettings (e.g., manifold pressure, etc.) that are appropriate for theengine to efficiently and effectively deliver the desired output. Theengine settings control unit may also be arranged to direct the settingsof any of the controllable engine components including, for example,throttle position (which most directly controls manifold pressure),spark timing, fuel injection, cylinder deactivation, intake and/orexhaust valve lift, etc. As such, the engine settings control unit 540includes appropriate controllers (e.g. a throttle controller) forpositioning the components it controls (e.g. a throttle) to insure thatthe components are positioned properly to actually deliver the desiredresponse (e.g. manifold pressure). The design of such componentcontrollers (e.g. throttle controllers) is well known. Alternatively,the engine settings controller may inform an ECU and/or the cylindercontroller of some or all of the desired settings and allow the ECU orto control selected specific components.

With the described architecture, the behavior of the engine can bedictated in large part by defining the logic of the engine settingscontrol unit. To illustrate this characteristic—consider the effect ofsetting manifold pressure. If the manifold pressure is set (arbitrarilyor otherwise) to an “optimal” level for the current rotational speed ofthe engine, then the actual cylinder torque fraction calculator 530 willconceptually output an actual cylinder torque fraction signal of “1”,which will result in the multiplier 535 multiplying the optimal firingfraction signal 517 by a factor of “1”. This dictates that the engine isrun in an optimized skip fire mode where each of the cylinder firings issubstantially optimized in the manner described above with respect toseveral of the other embodiments. That is, the engine fires the numberof cylinders that are appropriate to deliver the desired output usingonly optimized cylinder firings. However, if the manifold pressure isset (arbitrarily or otherwise) to a level that provides half of thetorque per cylinder firing as a “optimal” firing, then the actualcylinder torque fraction calculator 530 will conceptually output anactual cylinder torque fraction signal of “½”, which will result in themultiplier 535 multiplying the optimal firing fraction signal 517 by afactor of “2”. This implies that each firing will provide less energythan an optimized firing would (i.e., half the torque in the example)and the engine will operate in a deoptimized skip fire mode thatprovides substantially the same overall engine output and still skipsthe firing of selected cylinders, with the primary difference being thata higher percentage of the cylinders are fired. Although for simplicity,the specific example given above set the manifold pressure in a mannerthat provided half the torque of an optimized firing, it should beappreciated that the control works exactly the same regardless of thefraction (e.g., 13%, 28.3%, 79% etc.).

As described in some detail above, there are many operationalcircumstances (e.g. at idle or other low RPM conditions, etc.), where itmay be desirable to throttle an engine somewhat to help maintain smoothoperation and other desirable characteristics. It should be appreciatedthat the throttled skip fire controller 500 is particularly well suitedfor handling such circumstances. Since the engine settings control unit540 can readily be arranged to dictate the behavior of the engine, thedesired behavior under any particular conditions can be defined in largepart by defining the logic utilized within the engine settings controlunit. The desired engine settings will typically be a function of anumber of variables. For example, the current engine speed and therequested engine output are often considered particularly important.Other variables such as the gear that the engine is currently in, thecurrent vehicle speed, the status of a brake or clutch, etc. may alsoaffect the desired engine settings.

Each of the variables of interest is provided as an input to the enginesettings control unit. In the illustrated embodiment, the current enginespeed (RPM), the transmission gear setting (Gear), and an indication ofthe desired firing fraction are used as inputs to the engine settingcontrol unit. Of course, in other embodiments different, additional orfewer inputs may be used by the engine setting control unit. Forexample, in some implementations it may be desirable to utilize anoverall higher firing fraction in situations where the engine is warmingup. Thus information indicative of a recent startup or enginetemperature may be useful to the engine settings control unit.

In the illustrated embodiment, an indication of the desired firingfraction is used as an input that reflects the desired output of theengine. This may take the form of one (or both of) the optimal firingfraction signal 517 or the desired firing fraction signal 536 asillustrated in dashed lines in FIG. 19( a). However, it should beappreciated that the indication of the desired output can come from avariety of other sources if desired, including, for example, theaccelerator pedal position sensor 503, the desired output signal 505 orany other signal that can be considered a reasonably proxy for desiredoutput.

The appropriate engine setting for any and all particular operatingconditions can readily be defined using appropriate multi-dimensionallook-up tables based on the inputs selected. In other embodiments,control algorithms or logic that calculates the appropriate settings maybe used or hybrid approaches that utilize lookup tables in conjunctionwith other logic (algorithmic, electronic or otherwise) may be used. Ofcourse the actual logic utilized to define the desired engine settingsmay be widely varied to meet the needs of any particular system. Forexample, in some implementations it may be desirable to utilizeoptimized settings during any operational conditions that permit the useof the optimized settings, and only further throttle the engine insituations where it is needed for smooth operation of the engine or tomeet other specific operating requirements. The lookup tables and/orlogic can readily be set up to reflect such constraints. The constraintscan be determined empirically, via modeling or using any otherappropriate approach.

The cylinder controller 545 is arranged to control the delivery of fuelto the cylinders and to activate and deactivate cylinders based on thedrive pulse signal. In the illustrated embodiment, the cylindercontroller 545 includes fuel injector drivers suitable for controllingthe amount of fuel delivered to each cylinder. In embodiments used inengines that have the ability to deactivate cylinders, the cylindercontroller may also include appropriate drivers for deactivatingcylinders. In embodiments that include electronic values, the cylindercontroller may include valve drivers to actuate the valves appropriatelyfor each fired cylinder. When a drive pulse signal indicates that acylinder it to be fired—the cylinder controller 545 will insure that thecylinder is activated and that the proper amount of fuel will beinjected.

It should be appreciated that the actual amount of fuel delivered forany particular firing may be adjusted to compensate for variables suchas the amount of air introduced to the cylinders, potential wall wettinglosses, emissions concerns, etc. In the illustrated embodiment thecylinder controller receives inputs indicative of the current enginesettings from the engine settings control unit 540 and from appropriatesensors such as the manifold air pressure so that it can calculate theappropriate fuel pulses. It also includes logic suitable for trackingthe firing history of specific cylinders so that it can account for wallwetting losses. The specific data and sensor input provided to thecylinder controller 545 may be widely varied to meet the needs of anyparticular control approach. In still other embodiments, the cylindercontroller can include other desired functionality. By way of example,in implementations where sequencing is desired, the cylinder controllermay include sequencing functionality. In embodiments where control ofengine braking is desirable, the cylinder controller may be arranged toopen and close the valves on unfired cylinders in a manner that providesthe desired engine braking. Of course a wide variety of otherfunctionalities may be provided as well.

Many of the drive pulse generator designs described herein utilizefeedback of the actual firings. When desired, this feedback can beprovided by the cylinder controller 545 as seen in FIG. 19( a). In otherembodiment, the drive pulse signal itself can be used to provide thefiring feedback. This is particularly appropriate in embodiments wherethe cylinder controller does not do any sequencing and simply fires thecylinders in the order directed by the drive pulse generator. In stillother embodiments, torque sensors, torque calculators or other suitabledevices may be used to provide the feedback indicative of the firings.

The described engine firing controller 500 permits good skip firecontrol of the engine under virtually any engine speed and throttleposition. It also gives the engine designer broad control over theresponse characteristics of the engine. It should be apparent thatengine firing controller 500 is also well suited for use in otherengines that vary the amount of air introduced to the working chambers,including turbocharged and supercharged engines.

In the embodiment illustrated in FIG. 19( a), the actual cylinder torquefraction calculator 530 compensate for variations in the amount ofenergy provided by each firing using a feed forward control approach.That is, the multiplier 535 adjusts the optimal firing fraction signal517 to a desired firing fraction signal 536 in order to compensate forvariations in the drive energy provided by each firing. It should beappreciated that in alternative embodiments, the actual cylinder torquefraction calculator 530 can be used to scale the feedback signals usedby the drive pulse generator to provide substantially the samefunctionality.

Referring next to FIG. 19( b), another engine firing controllerarchitecture 500(a) will be described. In this embodiment, some of thefunctionality of the cylinder torque fraction calculator is handled bythe engine settings control unit 540(a). In this embodiment, the optimalfiring fraction signal 517 is feed to both the engine settings controlunit 540(a), and multiplier 535. The engine setting control unit 540(a)determines the appropriate throttle setting (and potentially otherengine settings such as spark and injector timing) based on a variety offactors. Other operating conditions such as whether the engine haswarmed up may also be considered. By way of example, in one specificimplementation, the throttle (and other engine) settings is determinedbased upon the optimal firing fraction signal 517, the engine speed(RPM), the gear that vehicle is currently in and the recent state of thethrottle.

When the engine settings (primarily the throttle position) are set, theengine control unit effectively knows (or can determine) the cylindertorque fraction that is expected for those settings (i.e. the expectedoutput of the cylinder relative to the optimal output of the cylinder).The inverse of this value is then fed to the multiplier 535 which inturn scales the optimal firing fraction signal 517 to the desired firingfraction signal 536 that is fed to the drive pulse generator 510. Inother respects the engine firing controller 500(a) is similar to thefiring controller 500 described above with respect to FIG. 19( a).

The engine settings control unit may be arranged to accommodate a numberof design goals. For example, in many applications, it may be desirableto insure that at least a designated minimum percentage of workingchambers are fired—particularly when the engine is operating at lowspeeds. For example, in a six cylinder engine, to facilitate smoothoperation, it may be desirable to insure that on average at least ⅓rd(e.g., 2 out of six) of the cylinders are fired during each tworotations of the crankshaft when the engine speed is below 2000 RPM. Insuch an implementation, when the engine settings control unit 540(a)detects that the optimal firing fraction signal is below ⅓rd, thethrottle position can be adjusted to a partial throttle position whichinsures that the desired firing fraction signal 536 exceeds ⅓rd. In someimplementations, this may be accomplished by designating a set ofavailable partial throttle states (e.g., optimal throttle position, 75%throttle, 50% throttle position, 30% throttle position, etc.). Ofcourse, the number and scale of the available partial throttle positionsmay be widely varied. In other implementations, fully variable throttlepositions may be accommodated. The appropriate throttle positions fordifferent conditions can be provided in a lookup table, calculated,determined algorithmically or in any other suitable manner.

It should be appreciated that the firing fraction that is desired forspecific conditions may vary based on a number of conditions. Some ofthe factors that are currently believed to be the most relevant tosetting the desired throttle settings include the optimal firingfraction signal 517, the engine speed (RPM), the gear that vehicle iscurrently in. For example, it may be desirable to have a higher minimumfiring fraction at low engine speeds (e.g. at idle or less than 1500RPM) than at higher engines speeds. It may also be desirable to have ahigher minimum firing fraction when the vehicle in a lower gear (e.g. in1st gear vs. in drive), etc. An advantage of the described architecturesis that the engine settings control unit can readily be designed toinsure any desired behavior.

Yet another particularly noteworthy use of different partial throttlesettings is in handling transitions between conventional operation andskip fire operation or in adapting to significant changes in the desiredengine output (e.g., large changes in pedal position). Specifically,smoother transitions may be accomplished by making more gradual changesin throttle position.

Control of Variable Displacement Engines

A problem that the inventors have observed in the operation ofcommercially available variable displacement engines is that theircontrollers appear to be designed to disengage from the variabledisplacement mode any time a non-trivial change is made in the state ofthe engine—e.g., if there is a call for significantly more or lesspower, if there is a significant change in load, etc. The result is thatunder normal driving conditions, the engine does not tend to operate (orstay) in the more efficient reduced displacement mode a very highpercentage of the time. It is suspected that one reason for this is thedifficulty in controlling the engine in a manner that provides close tothe same “feel” in response to movements of the accelerator pedalregardless of the number of cylinders that are being utilized.Therefore, rather than risk altering the feel of the engine, mostconventional variable displacement engine controllers appear to opt outof the variable displacement mode.

The feedback control systems generally described herein are very welladapted for providing the desired power regardless of the number ofcylinders being operated at any given time. The result is that theengine can provide substantially the same feel in response to calls formore (or less) power, regardless of the number of cylinders that arebeing used at any particular time. Thus, the described control schemescan be adapted for use in conventional variable displacement engines andcan further improve their fuel efficiency by (a) facilitating operationsat reduced cylinder counts a higher percentage of the time; and/or (b)allowing the use of more efficient (e.g., optimized) firings. Because ofits ability to effectively control the engine at lower cylinder counts,the described feedback control system can improve the efficiency ofconventional variable displacement engines even if the firings are notoptimized (e.g., even if the engine is throttled).

As described above, one potential problem that may be encountered usingthe pure skip fire approach described above is that if the valves of anunfired cylinder cannot be kept closed, then air is pumped through theengine. This drawback may be enough to preclude cost effectiveretrofitting of some engines because the engines' existing emissionssystem are not capable of handling the uncombusted air pumped throughskipped cylinders. However, conventional variable displacement enginesare capable of shutting down selected cylinders or banks of cylinders.The firing controllers described herein can readily be modified to takeadvantage of the ability of selected variable displacement engines toshut down particular cylinders.

If a variable displacement engine is capable of shutting down differentcylinders in order to provide several different displacements (e.g. anengine capable of operating on 4, 6 or 8 cylinders), the problemsgenerated by pumping air through unfired cylinders can potentially by acombination of: (a) selecting the lowest (or otherwise most appropriate)cylinder count operational state of the engine that can deliver thedesired output; and (b) setting the throttle appropriately to deliverthe desired output using all of the cylinders in the selectedoperational state. Requests for more or less power are then handled byappropriately adjusting the throttle position in the current operationalstate. If more power is required than can be delivered in the currentoperational state, a shift is made to a higher cylinder countoperational state of the engine. Similarly, if it is determined that therequested power can be delivered using fewer cylinders, then a shift ismade to a lower cylinder count operational state of the engine.

The engine controllers 500 illustrated in FIGS. 19( a) and (b) canrelatively readily be adapted for use in variable displacement engines.In one such implementation, the engine settings control unit 540 isarranged to additionally define the engine state (i.e., the number ofcylinders that should be used to deliver the desired output under thecurrent operating conditions). The engine settings (e.g. manifoldpressure, etc.) are set to a level expected to deliver the desiredoutput under the designated “state” and current operational conditions.The engine settings control unit 540 informs the cylinder controller ofthe desired engine state and the cylinder controller, in turn shuts downor reactivates cylinders accordingly. Of course, in alternativeembodiments, the engine settings controller, the ECU or other componentscould be arranged to handle the cylinder activation and deactivation.The cylinder controller may also be arranged to effectively sequence thedrive pulse in a manner such that only active cylinders are fired.

With the described arrangement, the engine can be generally balanced sothat the drive pulse generator will direct substantially the same numberof firings as are available in the current state of the engine. However,any time that more or less firings are mandated by the drive pulsegenerator, the cylinder controller can cause an additional cylinder tobe skipped or fired as appropriate. The manner that the additionalfiring or skips most appropriately implemented will vary based on thenature of the controlled engine. For example, in one simple embodiment,if the output of the drive pulse generator indicates that an additionalskip should occur, that additional skip can be implemented by simplyskipping one of the firing opportunities of the active cylinders.Alternatively, it can be implemented by temporarily transitioningbetween engine states. Similarly, additional firings may be implementedby simply activating and firing an additional cylinder if the engine iscapable of that or by temporarily transitioning between engine states.

The lookup tables (or other logic) used by the engine settings controlunit 540 may be designed in a manner that encourages efficientutilization of the different displacements. That is, if the variabledisplacement engine may be operated in 2, 3, 4 or 6 cylinder modes, thenthe engine settings control unit may be arranged to direct operation inthe lowest (or otherwise most appropriate) cylinder engine state for anyspecific operating condition and the controller can readily adapt tochanges—including rapid changes in the accelerator pedal position. Evenunder changing conditions, the drive pulse generator continues toeffectively track and direct the cylinder firings, thereby insuring thatthe engine delivers the desired performance. The result is that variabledisplacement engines can be arranged to operate in a fuel efficient modea greater percentage of the time than conventional variable displacementengines do today—thereby further improving their fuel efficiency.

In order to synchronize the various components with the engine, it canbe helpful to utilize a variable clock that is synchronized with theengine speed on some of the components of the engine firing controller500. For example, the clock for the drive pulse signal 550 is preferablysynchronized with the firing opportunities of the engine. In digitalsystems, it may be desirable to synchronize the outputs of some of theother components of the engine firing controller with the firingopportunities as well. For example, it may be desirable to synchronizethe outputs of the engine torque fraction calculator 515, the actualcylinder torque fraction calculator 530, the engine settings controlunit 540 and the cylinder controller 545 with the firing opportunitiesof the engine as well.

Comparative Example #1

The scale of the improvements that are potentially possible using thedescribed approach to variable displacement engine control will bediscussed with reference to FIGS. 20( a)-20(c). FIG. 20( a) is a graphthat illustrates the performance of a state of the art Honda variablecylinder management (VCM) engine while conducting a standardized engineperformance test known as the US06 Supplemental Federal Test Procedure(SFTP) test. The US06 test is a mandated fuel economy measurement testfor certain vehicles in the United States and is sometimes used as anobjective measure of fuel efficiency. The test is run on a dynamometerand is intended to simulate a variety of different driving conditionsranging from highway cruising to city driving. The US06 test cycle isintended to represent aggressive driving behavior with rapid speedfluctuations. For illustrative purposes, FIG. 20( a) graphs engineoutput vs. time. The vertical axis shows the horsepower output of theengine, while the horizontal axis shows time. The Honda VCM enginetested is a 6/4/3 variable displacement engine. The portions of the dataline represented by cross-hatching indicate periods of time during thetest when the engine operates in a three cylinder mode. Portions of thedata line colored in black indicate periods of time when the engineoperates in a six cylinder mode. It is noted that in this particulartest, the engine does not appear to operate in the four cylinder mode atall. Like most conventional variable displacement engines, in manyinstances the Honda VCM engine transitions out of the three cylindermode even though it is perfectly capable of delivering the requestedoutput using only three cylinders.

FIG. 20( b) is a graph that models the same engine using a controller ofthe type illustrated in FIG. 19. The engine output remains the same butit can be seen that the engine is able to operate in the three cylindermode (again illustrated by cross-hatching) a significantly higherpercentage of the time than the engine does using its standardcontroller. This results in a correspondingly higher fuel efficiencysince the engine operates more efficiently thermodynamically when lesscylinders are used.

The Honda VCM engine can also be run in a two cylinder mode (althoughthat is not an operational state in production vehicles). FIG. 20( c) isa graph that models the same engine performing the same test whencontrolled to operate using 2, 3, 4 or 6 cylinders. In this graph, twocylinder operation is shown using dotted fill of the data line, 3cylinder operation is shown using cross-hatched fill, and 6 cylinderoperation is shown in black. It can be seen that the desired output canactually be obtained using just two cylinders a significant percentageof the time—which provides even further fuel efficiency. It is believedthat overall fuel efficiency improvements of more than 20% may beobtainable using the type of control described with reference to FIG.19.

Variable Displacement Engine State Control

In yet another embodiment, a controller having an architecture that issomewhat similar to the engine firing controllers described above can bedesigned to control the operational state of a more conventionalvariable displacement engine and/or to control a more conventionalengine to operate in a variable displacement mode. For example, if anengine is capable of operating using 2, 3, 4, 5 or 6 cylinders, acontroller can be arranged to control the number of cylinders that areoperated at any given time (i.e. the operational state of the engine) ina precise way that permits more effective control over the transitionbetween operational states of the engine than is currently availableusing conventional variable cylinder management control. Such an enginestate controller 700 is described next with respect to FIG. 21.

The engine state controller 700 illustrated in FIG. 21 has anarchitecture that is quite similar to the architecture of engine firingcontroller 500 described above with reference to FIG. 19( a). Thissimilarity is due in part to the convenience of utilizing a similararchitecture for different types of controllers and therefore, it shouldbe appreciated that the specific architecture of the engine statecontroller may be widely varied within the scope of the presentinvention. For example, engine state controllers having an architecturesimilar to the engine firing controller 500(a) described with referenceto FIG. 1( b) or other similar architectures are also very appropriate.

In the embodiment of FIG. 21, the engine state controller 700 includesan engine state generator 710, an engine torque fraction calculator 715,a cylinder torque fraction calculator 730, a multiplier 735, an enginesettings control unit 740 and a fuel pulse adjuster 745. The describedarchitecture can be either incorporated into an engine control unit(ECU), or may be designed as a separate state controller that works inconjunction with a conventional engine control unit (ECU).

The functions of the engine torque fraction calculator 715, the cylindertorque fraction calculator 730, the multiplier 735 and associatedcomponents are essentially the same as the corresponding components inthe embodiment of FIG. 19( a). Therefore, a description of the functionsof those components will not be repeated here. However, the drive pulsegenerator 510 is replaced by an engine state generator 710. As will bedescribed in more detail below, the internal design of the engine stategenerator 710 may actually be quite similar to the design of the drivepulse generator 510—however it is configured to provide a very differentoutput. That is, the output is used to dictate the state of the engineas opposed to requested firings. More specifically, the engine stategenerator 710 is generally arranged to determine the number of cylindersthat should be used to deliver the desired output. Thus, it outputs astate signal 750 that indicates the appropriate engine “state”. Theengine state corresponds to the number of working chambers (e.g.cylinders) that are needed to deliver the desired power. The indicatedengine state is then used by the engine settings control unit 740 todetermine the appropriate settings (such as manifold pressure) for theengine to deliver the desired power. Thought of another way, the statesignal 750 effectively indicates the displacement required by the engineto deliver the desired engine output.

In a digital system, the state signal 750 may take the form of amulti-bit signal that indicates the desired state of the engine. Ingeneral, state signal 750 should include enough bits or distinct valuesto uniquely represent each potential state of the engine. By way ofexample, a two bit signal is sufficient to uniquely represent eachavailable state of a four cylinder engine that can be run on 1, 2, 3 or4 cylinders or a six cylinder engine that can be run using 2, 3, 4 or 6cylinders. A three bit signal is sufficient to represent all of theavailable states of any engine having 8 or less cylinders.

The engine state generator 710 uses feedback control, such as predictiveadaptive control to determine the appropriate number of cylinders to useto deliver the desired engine output. The displacement required by theengine will vary with operating conditions and can be based on both whathas happened in the past and what is predicted for the immediate future.The specific design of the engine state generator 710 may be widelyvaried. A representative design for the engine state generator 710 willbe described below with reference to FIG. 22.

The engine settings control unit may be arranged to direct the settingsof any of the controllable engine components including, for example,throttle position (which most directly controls manifold pressure),spark timing, fuel injection, cylinder deactivation, intake and/orexhaust valve lift, etc much like the engine setting control unitdescribed above with respect to FIG. 19( a). It should be appreciatedthat the ECUs used in conventional variable displacement engines arewell suited for performing many of the functions of the engine settingscontrol unit 740. Therefore, in embodiments where the engine statecontroller is incorporated into an engine control unit, the output ofthe engine state controller may be used directly by the ECU to set thestate of the engine and conventional variable displacement ECU logic maybe used to control the other engine variables. In embodiments where theengine state controller is embodied in a co-processor arranged to workin conjunction with the ECU, the co-processor may be arranged to simplyset the engine state and allow the ECU to function normally, or theengine settings control unit 740 may be arranged to directly controlsome or all of the engine variables.

Regardless of whether the engines settings are controlled by appropriatelogic within a traditional engine control unit or a separate unit 740,in an Otto cycle engine, it is important to set the intake manifoldpressure to a level that is appropriate to deliver the desired output inthe current operational state of the engine. The desired manifoldpressure and other engine parameters will be a function of a number ofvariables including the desired engine output, the current engine state,the current engine speed, the number of cylinders currently being used.Other variables such as the gear that the engine is currently in and/orvehicle speed, etc. may also affect the engine setting parameters. Asdiscussed above with respect to FIG. 19( a), a signal indicative of adesired output can come from a variety of sources. In the illustratedembodiment, an indication of the desired firing fraction is used as aninput that reflects the desired output of the engine. This may take theform of one (or both of) the optimal firing fraction signal 717 or thedesired firing fraction signal 736 as illustrated in dashed lines inFIG. 21.

The engine setting control unit 740 determines the appropriate enginesettings based on the current state and operational condition of theengine. This can readily be done using appropriate multi-dimensionallook-up tables, or using control algorithms or logic that calculates theappropriate settings in substantially the same way that the manifoldpressure and other settings were determined in the embodiment shown inFIG. 19( a).

The cylinder controller 745 may include fuel injector drivers and may bearranged to make sure the amount of fuel delivered to the activecylinders is appropriate for the amount of air that will be delivered toeach cylinder under the current engine settings. Unlike the cylindercontroller described above with respect to FIG. 19, cylinder controller745 does not determine the cylinders to be fired and not to be firedbased on a drive pulse signal. Rather, it directly or indirectlyreceives a signal indicative of the desired engine state (e.g. statesignal 750 in the illustrated embodiment) and activates, deactivates andfires cylinders based on the desire engine state.

Many of the engine state controller designs described herein utilizefeedback of the actual firings. When desired, this feedback can beprovided by the cylinder controller 745 as seen in FIG. 21. In otherembodiments, some or all of the functions of the cylinder controller canbe accomplished by an ECU or other appropriate logic.

Referring next to FIG. 22, a suitable engine state generator design willbe described. In the illustrated embodiment, the engine state generator710 takes the form of a digital sigma delta controller having a designquite similar to the drive pulse generator design illustrated in FIG. 9with a noteworthy distinction being that the comparator 761 is amulti-bit comparator. Thus, the engine state generator includes a set ofdigital integrators 304, 308, 314 and a comparator 761.

In this embodiment, the input (e.g., firing fraction signal 736) isinputted to the first digital integrator 304. The output of the firstdigital integrator 304 is fed to a second digital integrator 308 and theoutput of the second digital integrator 308 is feed to a third digitalintegrator 314. The output of the third digital integrator 314 is fed toa multi-bit comparator 716 that. The feedback signal 765 is indicativeof cylinder firings just like in the digital drive pulse generatorpreviously described. Such feedback may come from the cylindercontroller 745 the ECU or any other mechanism that knows, or candetermine when cylinder firings will actually occur. The feedback signal765 give the engine state controller full knowledge of what has actuallyhappened within the engine in terms of cylinder firings.

The clock for the digital integrators and comparator used in the enginestate controller 710 is synchronized with the firing opportunities ofthe engine. In the context of the illustrated engine state generator, afiring opportunity occurs each time a cylinder could in theory be fired,regardless of whether it is actually an active cylinder or a deactivatedcylinder so that the output of the comparator is synchronized with thefiring opportunities of the engine.

The comparator 716 is arranged to output a multi-bit state signalindicative of the desired state. As will be appreciated by thosefamiliar with digital sigma delta controller design, the comparator canreadily be set up to output only specific states. Thus, for example, ifthe controlled engine is an eight cylinder engine, a three bitcomparator can be set up such that 000 represents a 1 cylinderoperational state, 001 represents a two cylinder operational state, 010represents a three cylinder operational state and so on. If thatparticular engine can only be run in operational states having an evennumber of cylinders, then the comparator would be configured such thatit can only output the values 001, 011, 101 and 111. Of course any othercombination of available operational states can be utilized as well. Inanother example, if the controlled engine is a six cylinder engine, thatcan only operate using 3, 4 or 6 cylinders, a three bit comparator couldbe configured such that an output of 000, 100, 101, 110 an 111 areprohibited, 001 indicates operation in a 3 cylinder mode, 010 indicatesoperation in a 4 cylinder mode and 011 indicates operation in a 6cylinder mode. Of course the comparator may be configured in any otherappropriate way as well.

With the described arrangement, the engine state generator 710 outputsan engine state signal 750 during each clock cycle (which has been setup to correspond to the firing opportunities of the engine). The enginesettings control unit 740 receives the engine state signal 750 anddetermines the appropriate engine setting to deliver the desired outputusing the designated number of cylinders based on the engine's currentoperating conditions (e.g., RPM, gear, etc.). The appropriate enginesettings may then be set by the engine settings control unit itself, theECU or any other appropriate component. At the same time, the cylindercontroller, the ECU or other appropriate component insures that theengine is in the directed state so that only the appropriate cylindersare fired.

Each time a cylinder is fired, feedback indicative of the firing isprovided to the engine state generator 710. The feedback is scaled sothat it appropriately offsets the firing fraction signal 736. Byproviding feedback of the actual firings, the engine state generator canaccurately track the actual performance of the engine. Any time theengine state generator determines that a new state is appropriate, thechange may be implemented effective the next firing opportunity bysimply outputting a different value for engine state signal 750. The newvalue of the engine state signal causes the engine settings control unitto recalculate the appropriate engine settings based on the new enginestate and the settings are changed appropriately for the next firing. Itshould be appreciated that the electronics can operate at speed farfaster than the rate that firing opportunities occur in the engine.Thus, the electronics can readily adjust the settings appropriately forthe next firing opportunity. Of course, some of the engine settingsinvolve moving mechanical parts such as a throttle. Although there mayinherently be some latency involved in moving the throttle (or othermechanical parts) relative to the speed at which the electronics canoperate, those latencies generally do not adversely affect theperformance of the engine state controller 700.

If the settings are changed in a manner that affects the torque producedby each firing, the actual cylinder torque fraction calculator willdetect the changed condition and adjust the scaling provided bymultiplier 735 accordingly. When conditions are balanced, (i.e., theengine is actually operating at the settings requested by the enginesettings control unit), the desired firing fraction should closelycorrespond to the level that corresponds to the firing fractionindicated in the state that is being outputted by the comparator 716,which in turn should closely correspond to the feedback indicative ofactual firings.

It should be appreciated that in typical engine applications, the rateof change of the system's input signal (e.g., the accelerator pedalposition in an automobile) is quite slow when compared to the firingopportunities of the engine. Therefore the controller is able to veryaccurately track variations in the desired output. Some of the enginesettings involve moving mechanical parts such as a throttle. Althoughthere may inherently be some latency involved in moving the throttle (orother mechanical parts) relative to the speed at which the electronicscan operate, those latencies generally do not adversely affect theperformance of the engine state controller 700. The throttle controllerand other components incorporated into (or directed by) the enginesettings control unit 740 are well adapted to set the engine in thestate directed by the engine settings control. Therefore, the describedengine state controller provides good control of the engine output.Indeed, it is expected that the described engine state controller canobtain the same efficiency improvements in variable displacement enginecontrol as discussed above with respect to FIG. 20.

The embodiment described above contemplates providing feedback of eachfiring. With this arrangement, the operational state of the engine canbe changed at any time without losing track of the actual performance ofthe engine. It is desirable to track the actual performance because ifan operational state change is made and the controller does noteffectively know how many cylinders have been fired, it is verydifficult to insure that the controller delivers the desired engineperformance—especially during periods when the driver demand and/or theload are rapidly changing. Indeed, although the current inventors arenot familiar with the internal details of current variable displacementengine controllers, it is suspected that the inability to accuratelytrack actual engine performance and make appropriate compensationsthereafter may be a significant contributing factor regarding whyexisting controllers are designed to switch out of the variabledisplacement mode to an all cylinder operational mode when relativelylarge changes are made in the desired output even when the engine isperfectly capable of delivering the desired output using a reducedcylinder count.

In various alternative embodiments, the state signal 750 itself (orother feedback indicative of the current state of the engine) may beused instead of the feedback of the actual firings. An advantage of thisapproach is that it can simplify the design of the engine stategenerator a bit. However a drawback of this design is that when anindication of the desired state is used as the feedback, it ispreferable to design the system such that state transitions can only bemade at one consistent time per complete cycle of the engine (e.g., atone specific point every two revolutions of the crankshaft in a 4 strokepiston engine). The reason for this is that if state transitions aremade at other times, the controller may not have full knowledge of howmany cylinders have actually been fired—which causes problems from acontrol standpoint. For some engines, limiting state transitions to aspecific point in the engine cycle is perfectly acceptable and in suchdesigns feedback of the state can be used in place of feedback of thefirings.

In the embodiment illustrated in FIG. 21, the feedback of the actualfirings is explicitly provided by the cylinder controller 745. However,this is not a requirement. In alternative embodiments, the feedback ofthe firings could be received from other sources, derived from sourcessuch as the vehicle RPM or simply independently calculated. Calculationsare possible because the specific cylinders that are fired will be knownbased on the designated engine state. Any of these sources or otherappropriate sources may be used to provide feedback indicative of theactual cylinder firings. In one specific implementation, the enginestate generator can include logic to actually calculate which cylindershave been fired at any time based on the state signal 750 and knowncylinder firing patterns in different engine states. The firinginformation can then used as feedback within the engine state generator710.

The engine state controller embodiment illustrated in FIG. 21 has anarchitecture that is quite similar to the engine firing controllerdescribed with reference to FIG. 19( a) in part because that is aconvenient implementation. However, it should be appreciated that inalternative embodiments very different control architectures can be usedto accomplish similar results. One such architecture will be describednext with reference to FIG. 23. In the illustrated embodiment, an enginestate controller 700A is designed for use in conjunction with an enginecontrol unit (ECU) 746 that has the ability to operate a variabledisplacement engine 762 in multiple variable displacement modes. Theengine state controller 700A includes a state calculator 710A and anactual cylinder output calculator 730A. The engine state calculator 710Atakes the form of a processor arranged to determine the appropriateengine state for the engine at any given time. The state calculator 710Aoutputs a state signal 750 to the ECU 746. The ECU, in turns directs theoperation of the engine 762 in the engine state indicate by state signal750.

The ECU operates in the same manner as conventional variabledisplacement engine controllers, except that it relies on statecalculator 710A to determine the appropriate operational state of theengine. The actual cylinder output calculator 730A functions similarlythe torque fraction calculators described above with respect to FIGS. 19and 21. That is, it determines the relative proportion of work that isobtained from each firing based on the current operational state of theengine as compared to a nominal or reference value. The results of thisdetermination are provided to the state calculator 710A by way of actualtorque fraction signal 731A. The actual output signal 731A indicates thefraction or percentage of the reference output that is provided by eachactual working chamber firing. Depending on the nature of the controldesired, the reference value utilized by the actual cylinder outputcalculator 730A may be a fixed value, a value that varies as a functionof engine speed or current operating conditions, or a value that variesas a function of multiple variables.

The state calculator 710A receives an input signal 707 indicative of adesired engine output. As discussed in detail in several places above,the desired engine output can come from a variety of sources—including,for example, an accelerator pedal position sensor, a cruise controlleror any other suitable source, and such signals may include any manner ofpreprocessing that is desired in a particular application. The statecalculator 710A is arranged to determine the number of cylinders thatare needed to deliver the desired output. That is, it calculates thenumber of cylinders that are required to provide the desired output andso informs the ECU 746. The ECU also obtains receives the signal 707 anddetermines the appropriate engines settings in the designated state inan otherwise conventional manner.

In determining the number of cylinders to use at any given time, thestate calculator 710A is arranged to effectively track the desiredoutput over time and track the actual performance over time to insurethat they are the same. By doing so, the state calculator is able toinsure that the engine consistently delivers the desired performance,regardless of state changes. Such tracking can be done using a widevariety of approaches and can be done algorithmically, using digitallogic, analog logic or combinations thereof. One such approach utilizesan accumulator that is synchronized with the firing opportunities of theengine. For each firing opportunity, the accumulator receives twoinputs. The first input is a positive input that indicates the currentvalue of the desired input signal 707. The second input is a negativevalue that indicates the current value of the actual cylinder torquefraction calculator which effectively indicates the amount of work ortorque provided by the last firing. The number of cylinders to be used(i.e. the engine state) is then determined using the accumulated valuein the accumulator. Generally, the minimum number of cylinders that cangenerate the desired amount of would be selected and a value indicativeof that selection is outputted as the state signal 750A.

The state calculator can readily be designed to take other factors thansimply the desired output signal 707 and the information provided by theactual cylinder output calculator into account when selecting the state.This can include any factors that an engine designer determines isappropriate for a particular engine—as for example, engine speed,vehicle speed, the gear a vehicle is in, engine temperature, etc. Thedesired number of cylinders can be determined algorithmically, by usingmulti-dimensional lookup tables or using any other desired approach.

Rapid Modulation of Operating State in Variable Displacement Engines

Referring next to FIGS. 12 and 13, another approach to variabledisplacement engine control will be described. If a variabledisplacement engine can be switched to a new operational staterelatively quickly, then it may be possible to use a controller similarto the controller described above with respect to FIG. 12 to control theengine. This embodiment contemplates a more rapid modulation of theoperating state of variable displacement engines than would be necessaryin the embodiments disclosed above with respect to FIGS. 19-22. FIG. 13is a graph illustrating the power that is available in a conventionalvariable displacement engine as a function of throttle position. In theillustrated embodiment, the engine is an Otto cycle engine capable ofoperating using 2, 3, 4 or 6 cylinders. When the desired engine outputis less than the amount of power that can be provided by operating twocylinders in their optimal state, then the requested power may bedelivered by operating the engine in a throttled two cylinderoperational mode that uses throttling of the two operational cylindersto modulate the power. This is generally similar to the manner in whichconventional variable displacement engines are operated today and theengine performance is represented in FIG. 13 by curve 470 whichillustrates the power output of two throttled cylinder. When therequested power equals or exceeds the amount of power that can bedelivered by two cylinders operating at their optimal level, then theengine may be switched to an optimized operational mode that uses acontroller similar to the controller illustrated in FIG. 12 to deliverthe requested power. As discussed above with reference to FIG. 14 andelsewhere, the “optimized” operational state may not actually correspondto a fully open throttle state. Thus, it should be appreciated that inthe context of this description, when we use the term “unthrottled” or“substantially unthrottled” it does not intended to be limited to onlyconditions where the throttle is fully open. Rather, it is intended toindicate a state where the throttle is open sufficiently to allow arelatively full charge of air to enter the cylinders and is not beingused as the primary mechanism for modulating the output of the engine.

When the requested power is an amount between the power that can bedelivered by two and three cylinders operating all of the time at theiroptimal levels, then the injection controller 440 directs the engine toswitch back and forth between the two and three cylinder modes asdirected by the drive pulse signal 442. That is, when the drive pulsesignal 442 is low, the injection controller 440 places the engine in thetwo cylinder mode, and when the drive pulse signal 442 is high, theinjection controller 440 places the engine in the three cylinder mode.In this operational state, the engine runs substantially unthrottled andthe cylinder firings are optimized as previously described. Thus, thedrive pulse signal 442 effectively serves as the indicator of when theengine should be placed in the two cylinder mode, and when it should bein the three cylinder mode. Similarly, when the requested power is anamount between the power that can be delivered by three and fourcylinders operating all of the time at their optimal levels, then theinjection controller directs the engine to switch back and forth betweenthe three and four cylinder modes as directed by the drive pulse signal442.

In FIG. 13, the engine output when switching between the two and threecylinder modes is represented by line 475 and the engine output whenswitching between three and four cylinders is represented by line 476.This contrasts with lines 471, 472 and 473 which illustrate the engineoutput using three, four and six cylinders respectively in aconventional throttled manner. It should be appreciated that allowingthe engine to run substantially unthrottled when delivering more powerthan can be delivered by two cylinders alone can significantly improvethe fuel efficiency of the engine.

When the requested power is an amount between the power that can bedelivered by four and six cylinders operating all of the time at theiroptimal levels, then the injection controller directs the engine toswitch back and forth between the four and six cylinder modes asappropriate based on the drive pulse signal 442. It should beappreciated that the engine controller 400 must be arranged to accountfor the fact that two additional cylinders are fired when the engineswitches from the four to six cylinder operational states. Thisdifference can be handled in several different ways. For the purpose ofillustration, consider an implementation in which the engine can only beswitched between operational states once each full operational cycle ofthe engine. That is, each operational cylinder must be fired once whenthe engine switches operational states. One suitable approach tocompensating for the additional cylinder would be to utilize injectioncontroller logic to determine when to switch between the four and sixcylinder states. For example, if the integer output 407 of the residualcalculator is a “4”, then the injection controller would require theaccumulation of two “high” drive pulses before switching to the sixcylinder mode for one operational cycle of the engine, after which theinjection controller would switch then engine back to the four cylinderoperational state until two more “high” drive pulses have beenaccumulated.

When the integer output 407 of the residual calculator is a “5”, thenthe injection controller would effectively add one to the accumulatoreach full working cycle of the engine, which would have the desiredeffect of causing the engine to operate in the six cylinder state ahigher percentage of the time to thereby deliver the desired power.

A second suitable approach to compensating for the additional cylinderwould be to utilize sigma delta controller logic to dictate when thefour and six cylinder states are appropriate. In one suchimplementation, the input to the sigma delta controller may be adjustedappropriately to account for the fact that two cylinders are beingcontrolled instead of just one. This could involve changing the residualcalculator to logic that outputs a “remainder” signal that is based onthe amount the desired output signal exceeds “4” cylinders and thendividing that value by a factor of two in order to compensate for thefact that a “high” drive pulse signal causes two additional cylinders tofire.

In still another implementation, if the mode switching response time ofthe engine is quick enough that a mode switch can be made between thefiring opportunities of the “5th” and “6th” cylinders, then the enginecontroller can be configured to operate just like the single cylindermodulation skip fire engine controller described above with modeswitching being used to shut down cylinders as appropriate.

It should be appreciated that the foregoing examples are merelyexemplary in nature and that the details of any specific implementationwould need to be adjusted to compensate for the capabilities of thespecific variable displacement engine being controlled. The actualnumber of permissible operational states and the actual number ofavailable cylinders in each such state will vary from engine to engine.The controller will need to be adjusted to utilize the available states.Additionally, the response time for switching between differentoperational states will vary from engine to engine. Some engines maytake more than one full operational cycle of the engine to switchbetween operational modes, while others may be quick enough tofacilitate switching back and forth between modes on a firingopportunity by firing opportunity of the cylinders basis. In view ofthese variations, the logic of the engine controller would need to becustomized to capabilities of the engine. It should be appreciated thatnot all existing variable displacement engines are robust and quickenough to switch back and forth between modes at the speed that would berequired to run the engine smoothly in the described mode switchingmanner. However, it should be appreciated that operating a suitableconventionally configured variable displacement mode in this type ofmode switching manner is one way that the air pumping problem can beaddressed.

Increasing Useable Engine States in Dual Exhaust Engines

Several of the controllers described above contemplate switching anengine between different operational states in order to take advantageof a variable displacement engine's ability to shut down specificcylinders. Most existing variable displacement engines support arelatively few number of operational states. It should be apparent thatfrom a fuel efficiency and/or engine control standpoint, it wouldgenerally be preferable if the engine is capable of operating in anumber of different states. When designing a new engine, it isrelatively easy and inexpensive to provide for individual deactivationof cylinders in a manner that prevents air from being pumped throughdeactivated cylinders. In contrast, most existing automotive engines arenot capable of individually deactivating cylinders and it is currentlyrelatively unrealistic to retrofit existing engines in a manner thatprovides individual deactivation of cylinders. Convention variabledisplacement engines typically do have the ability to deactivate some(but not all) cylinders, although typically they only support arelatively few number of operational states. In some variabledisplacement engine designs, the specific cylinders that can bedeactivated are mechanically deactivated individually. However, forvarious reasons including vibration and/or engine control the cylinderstend to be shut down only in pairs or banks. For example, a number ofvariable displacement V-8 engines exist that have the inherent abilityto shut down four cylinders individually—but the engines are designedonly to operate in 4 and 8 cylinder modes. Many automotive enginesutilize dual exhaust. In retrofitted vehicles, the dual exhaust featurecan be used to help provide additional useful operating states in avariable displacement engine without requiring complicated retrofittingof the exhaust system. Such an approach is described in PCT ApplicationNo. PCT/US09/50337, filed Jul. 10, 2009 which is incorporated herein byreference. The techniques for increasing the number of operationalstates described in the referenced applications are well suited for usein conjunction with the variable displacement engine controllersdescribed herein to further improve the efficiency of variabledisplacement engines.

Pre-Processor Stage

In some of the embodiments described above, a signal from theaccelerator pedal position is treated as the indication of the desiredengine output that is used as the input to the control system (e.g.,drive pulse generator 104, engine control unit 400, etc). In suchembodiments, the desired engine output signal 113 can be taken directlyfrom a pedal position sensor on the vehicle, or it may be amplified inan appropriate manner. In other embodiments, the pedal position sensorsignal may be combined with other inputs (such as the dither signal 207described above) before it is provided to the drive pulse generator 104.In still other embodiments, the accelerator pedal position sensor signalmay be provided to a preprocessor 181 (as represented by, for example,as a dashed box in FIG. 3), which either generates its own signal ordoes some level of processing on the pedal sensor signal. The output ofthe preprocessor 181 would then be used as the input to the drive pulsegenerator, with or without an additional dither signal as may beappropriate for a particular design.

The preprocessor 181 may be arranged to provide any desired type ofpreprocessing of the accelerator pedal position sensor signal. Forexample, it may be desirable for an automobile to provide a fuel savingsmode where the accelerator pedal position signal is preprocessed in away that helps operate the engine in the most fuel efficient manner. Inanother example, it is generally known that some drivers tend torelatively rapidly fluctuate the pedal position. For such drivers it maybe desirable for an automobile to provide a smooth driving mode in whicha preprocessor averages or smoothes certain pedal position fluctuations(e.g., the preprocessor may take the form of, or include, the low passfilter 402 described above with respect to FIG. 12). In still otherimplementations, the vehicle may include a cruise controller. In suchvehicles, the cruise controller may be incorporated in the preprocessoror may serve as the source of the drive pulse generator's input signal113 when the vehicle is in the cruise control mode. In still otherembodiments, anti-aliasing filtering of the pedal position may beprovided in the preprocessor 181. Of course, the preprocessor may bearranged to perform any other type of preprocessing that is deemedappropriate for the engine and/or vehicle being controlled.

Transmission Control and Continuously Variable Transmission

It is well known that engine speed has an effect on the fuel efficiencyof an engine. This effect can be seen graphically in the performance mapillustrated in FIG. 14. As seen in FIG. 14 and discussed above, enginestend to be most efficient when operated within a relatively narrow rangeof engine speeds, manifold pressures, etc. For this reason, the enginecontrol units (ECUs) used on many vehicles having automatictransmissions are arranged to control the shifting of the gears of thetransmission based at least in part on the engine speed in an effort toimprove overall fuel efficiency. The fuel processor may be arranged tocontrol or influence the gear selection in a similar manner whenoperating in the skip fire type variable displacement mode.

Some existing vehicles use continuously variable transmissions. A knownadvantage of a continuously variable transmission is that it allows theengine to operate at closer to its peak efficiency over a range ofvehicle speeds than standard transmissions. It should be appreciatedthat the use of a continuously variable transmission in conjunction withthe described skip fire based variable displacement engine operationallows the engine to run at very close to its optimal thermodynamicefficiency most of the time. That is, the described skip fire approachallows each firing to be optimized for thermodynamic efficiency (orother desired parameters) and the use of a continuously variabletransmission allows the engine to operate at an optimal engine speed(RPM), thereby allowing operation of the engine in the optimal zone(e.g. zone 50 in FIG. 14) most of the time.

Although existing engine controllers often control the transmission inan effort to improve efficiencies, the inventors are unaware of anyexisting engine controllers that are able to control the transmission,and the manifold pressure and the working chamber firings in a mannerthat ensures that fired working chambers are operated in a relativelytight zone optimized for fuel efficiency or other desired criteria.

Diesel Engines

Although many of the examples set forth above discuss applying thedescribed skip fire based variable displacement approach to enginesbased on the Otto cycle or other thermodynamic cycles that modulatepower by throttling air delivery to the working chambers, it should beappreciated that the invention is very well suited for use in dieselengines. Indeed, many existing diesel engine designs are particularlywell adapted for operation using the described skip fire approach. Forexample, the exhaust and emission systems used in many existing dieselengines are already adapted for use with high oxygen content exhauststreams which can simplify both retrofitting and new engine design.Also, most diesel engines use direct injection which eliminates the wallwetting issues discussed above. Further, many diesel engines currentlyemploy injection profiling. That is, the injection of fuel into acylinder is staged and timed to improve the thermodynamic efficiency ofthe cylinder firing. Such profiling can further improve the efficiencyof the engine when using optimized firings. Therefore, it should beappreciated that any of the engine control embodiments described abovemay be used in conjunction with diesel engines.

One problem that is often associated with diesel engines is that theyare considered “dirty” engines in that their emissions include a numberof pollutants. One of the principle reasons for this is that mostconventional diesel engines do not modulate the power of the engine bythrottling the air provided to the cylinders. Rather, they deliversubstantially unthrottled air to the working chambers and modulate theamount of fuel that is provided to the working chambers to modulatepower output. With this approach, the air/fuel ratio is rarely nearstoichiometric proportions which significantly increases the generationof certain pollutants in the exhaust gases. An advantage of using thedescribed approaches in diesel engines is that the operating conditionswithin the working chambers can be closely controlled so that the engineruns significantly cleaner than conventional diesel engines. Such anapproach is described in PCT application No. PCT/US09/50339, which isincorporated herein by reference.

First Order Sigma Delta

Referring next to FIG. 24 another engine controller embodiment thatutilizes a low cost, simplified drive pulse generator design that workswell in many applications. In this embodiment, the drive pulse generator104 uses first order sigma delta computation to determines when cylinderfirings are appropriate to deliver the desired output. The first ordersigma delta converter 104 may also be used in place of any of the drivepulse generators described above or in a variety of other applications.When firings are desired, the drive pulse generator informs an ECU 305which directs the actual firings. In this embodiment, the output of thedrive pulse generator 104 directly determines the firing pattern so theECU 305 is not required to do any sequencing. However, it should beappreciated that in alternative embodiments, the ECU can be arranged tooverride the drive pulse generator as appropriate when specificsituations are encountered.

The drive pulse generator 104 receives signal 113 indicative of adesired output and signal 116 indicative of current engine speed.Desired output signal 113 is interpreted as a request for a designatedfiring fraction. As with the previous embodiment, the input can be baseddirectly or indirectly on accelerator pedal position or may be obtainfrom other suitable sources. The drive pulse generator uses first ordersigma delta computation to determine when cylinder firings areappropriate. The first order sigma delta computation can be accomplishedusing software, firmware, digital hardware, analog hardware or acombination of the above. As will be apparent to those familiar withsigma delta control, first order sigma delta computation essentiallyfunctions as an accumulator. When the accumulated “value” equals orexceeds a designated threshold a cylinder firing is requested. Thefiring request is diagrammatically illustrated as drive pulse signal 110that is output from the drive pulse generator 104 to the enginecontroller 305. However, it should be appreciated that the informationcan be conveyed in any suitable form.

Table 1 below will be used to facilitate an explanation of first ordersigma delta computation. In general, each time a firing opportunityarises, the drive pulse generator adds the currently requested firingfraction to an accumulated carryover value. If the sum is less than 1,the cylinder is not fired and the sum is carried over to be used in thedetermination of the next firing. If the sum exceeds 1, the cylinder isfired and the value of 1 is subtracted from the accumulated value. Theprocess is then repeated for each firing opportunity. The table below,which is believed to be self-explanatory, illustrates a firing sequencegenerated in response to a particular pedal input.

TABLE 1 Cylinder Requested Accumulated No. Firing Fraction ValueCarryover Sum Fire? 1 .35 0 .35 No 2 .36 .35 .71 No 3 .36 .71 1.07 Yes 4.36 .07 .43 No 5 .39 .43 .82 No 6 .41 .82 1.23 Yes 1 .45 .23 .68 No 2.45 .68 1.13 Yes 3 .45 .13 .58 No 4 .45 .58 1.03 Yes 5 .45 .03 .48 No 6.45 .48 .93 No

It should be apparent from the previously described embodiments that thesame drive pulse generator core can be used in both throttled andoptimized skip fire application with appropriate relative scaling of thedesired output signal 113, the threshold used in firing determination,and the value subtracted from the accumulator for each firing. In someimplementations, it may be desirable to scale the amount subtracted foreach firing in a manner indicative of the relative amount of powerprovided by each firing. For example, in a throttled engine where thethrottle is set so that each firing generates half of an optimizedfiring, the amount subtracted for each firing could be reduced by 50%.The same effect can be achieved by appropriately scaling the inputsignals well.

It should be appreciated that in this embodiment, the feedback of thefirings is provided internally within the sigma delta through thesubtraction that occurs on each requested firing event.

In the embodiment of FIG. 24, the output of the drive pulse generator104 is provided to ECU 305 which controls the various engine componentsincluding the fuel injectors, throttle position, valve timing, etc.Although the embodiment of FIG. 24 utilizes relatively simple firstorder sigma delta control in the drive pulse generator, it should beappreciated that the same drive pulse generator→ECU→engine architecturecan be used in conjunction with more sophisticate controllers as well.

Other Features

Although only a few embodiments of the invention have been described indetail, it should be appreciated that the invention may be implementedin many other forms without departing from the spirit or scope of theinvention. Many of the examples given above relate to 4-stroke pistonengines suitable for use in motor vehicles. However, it should beappreciated that the described continuously variable displacementapproaches are very well suited for use in a wide variety of internalcombustion engines. These include engines for virtually any type ofvehicle—including cars, trucks, boats, aircraft, motorcycles, scooters,etc.; for non-vehicular applications such as generators, lawn mowers,leaf blowers, models, etc.; and virtually any other application thatutilizes an internal combustion engine. The various described approacheswork with engines that operate under a wide variety of differentthermodynamic cycles—including virtually any type of two stroke pistonengines, diesel engines, Otto cycle engines, Dual cycle engines, Millercycle engines, Atkins cycle engines, Wankel engines and other types ofrotary engines, mixed cycle engines (such as dual Otto and dieselengines), hybrid engines, radial engines, etc. It is also believed thatthe described approaches will work well with newly developed internalcombustion engines regardless of whether they operate utilizingcurrently known, or later developed thermodynamic cycles.

Some of the examples above were based on Otto cycle engines which aretypically throttled so they often do not operate at maximum compression.However, the concepts are equally applicable to unthrottled engines suchas diesel cycle engines, Dual cycle engines, Miller Cycle engines, etc.

In some of the embodiments explicitly discussed above, it was assumedthat all of the cylinders would be used or otherwise operated in thecontinuously variable displacement mode. However, that is not arequirement. If desired for a particular application, the firing controlunit can readily be designed to always skip some designated cylinder(s)(working chamber(s)) when the required displacement is below somedesignated threshold and/or to always fire selected cylinders atparticular required displacement levels. In still other implementations,any of the described working cycle skipping approaches could be appliedto traditional variable displacement engines while operating in a modein which some of their cylinders have been shut down.

The described continuously variable displacement mode of operation canreadily be used with a variety of other fuel economy and/or performanceenhancement techniques—including lean burning techniques, fuel injectionprofiling techniques, turbocharging, supercharging, etc. It is believedthat the fact that the conditions within the cylinders are relativelyfixed in fired cylinders make it easier to implement enhancementtechniques that are generally known, but not in widespread use (e.g.,the use of fuel injection profiling with multiple staged injections inautomotive engines). Additionally, it is believed that the controlledconditions within the cylinders may also enable a variety of otherenhancements that are not practical in conventional engines.

Most of the drive pulse generator embodiments described in detail aboveutilized sigma delta controllers. Although it is believed that sigmadelta controllers are very well suited for use in controlling theengine, it should be appreciated that a variety of other controllers,and particularly adaptive (i.e., feedback) controllers may be used ordeveloped for use in place of the sigma delta control. For example, itshould be appreciated that other feedback control schemes may be used toconvert the inputted desired engine output signal 113 to a stream ofdrive pulses that can be used directly or indirectly to drive theengine.

In several of the described embodiments, the sigma delta controller isgenerally designed to convert the inputted desired engine output signalto signals that can be used to generate drive pulses. Sigma delta is onetype of converter that can be used to represent the input signal. Someof the described sigma delta converters exhibit oversampled conversionand in various alternative embodiments, other oversampled converters canbe used in place of sigma delta conversion. In still other embodiments,other types of converters can be used as well. It should be appreciatedthat the converters may employ a wide variety of modulation schemes,including various pulse width modulation schemes, pulse heightmodulation, CDMA oriented modulation or other modulation schemes may beused to represent the input signal, so long as the synchronizercomponent of the drive pulse generator is adjusted accordingly.

It should be apparent from the foregoing that the described continuallyvariable displacement approach works very well with existing enginedesigns. However, it is believed that the described skipped workingcycle control approach will also facilitate or even enable a widevariety of other technologies that can be used to further improve thethermodynamic efficiency of the engine. For example, the use of asupercharger or a turbocharger in combination with the describedcontinuously variable displacement approach can further improve theefficiency of an engine. Computer simulation models suggest that thecombination of the described continuously variable displacement controlapproach with a supercharger can readily improve the fuel efficiency ofmany existing Otto cycle engines by over 100%.

One of the reasons that such significant improvements are possible inautomotive engines is because most automotive engines are operated at arelatively small percentage of their potential horsepower most of thetime. For example, an engine that is designed to deliver maximum poweroutputs on the order of 200-300 horsepower may require no more than20-30 horsepower most of the time—as for example when the vehicle iscruising at 100 kilometers per hour.

In the discussions above, a number of different skip fire based controltechniques have been described and a number of different enhancementshave been described. In numerous situations, enhancements have beendescribed in the context of a particular controller. However, it shouldbe appreciated that many of the enhancements may be used in conjunctionwith a number of the controllers. For example, the described fuel pulsevariations (e.g., optimization of fuel injection amounts, rich fuelpulses, lean pulses, etc.) may be used in conjunction with any of thedescribed controllers. Any of the described control methods andcontrollers may be implemented as a co-processor or incorporated intothe engine control unit itself, etc.

In some implementations it may be desirable to provide redundantcontrollers—as for example redundant sigma delta controller. Theredundant controllers may run concurrently so that if one fails theother may take over. Often digital sigma delta controllers can be tunedmore precisely than analog sigma delta controllers. At the same time,digital sigma delta controllers may be slightly more susceptible tofailure than analog sigma delta controllers. Thus, in someimplementations, it may be desirable to provide redundant sigma deltacontrollers, with a primary controller being a digital controller and asecondary or backup controller being an analog sigma delta controller.

It is noted that over the years, there have been a number of proposalsthat contemplated operating specific engines in a “skip fire” mode.However, it is the Applicants' understanding that none of theseapproaches have ever enjoyed any significant commercial success. It issuspected that a major factor that contributed to this lack ofacceptance is that prior efforts were unable to control the engine in amanner that delivered the required engine smoothness, performance anddrivability characteristics to enjoy commercial viability. In contrast,it is believed that the described engine control and operationapproaches are well suited for use in a variety of differentapplications.

Most conventional variable displacement piston engines are arranged todeactivate unused cylinders by keeping the valves closed throughout theentire working cycle in an attempt to minimize the negative effects ofpumping air through unused cylinders. Many of the described embodimentscontemplate deactivating or shutting down skipped cylinders in a similarmanner. Although this approach works well, the piston still reciprocateswithin the cylinder. The reciprocation of the piston within the cylinderintroduces frictional losses and in practice some of the compressedgases within the cylinder will typically escape past the piston ring,thereby introducing some pumping losses as well. Frictional losses dueto piston reciprocation are relatively high in piston engines andtherefore, significant further improvements in overall fuel efficiencycan theoretically be had by disengaging the pistons during skippedworking cycles.

Over the years, there have been several engine designs that haveattempted to reduce frictional losses in variable displacement enginesby disengaging the piston from reciprocating. The present inventors areunaware of any such designs that have achieved commercial success.However, it is suspected that the limited market for such engines hashindered their development in production engines. Since the fuelefficiency gains associated with piston disengagement that arepotentially available to engines that incorporate the described skipfire and variable displacement control approaches are quite significant,it may well make the development of piston disengagement enginescommercially viable.

In view of the foregoing, it should be apparent that the presentembodiments should be considered illustrative and not restrictive andthe invention is not to be limited to the details given herein, but maybe modified within the scope of the appended claims.

1. An engine controller suitable for use with an internal combustionengine having at least one working chamber, each working chamber beingarranged to operate in a succession of working cycles, wherein: theengine controller has a skip fire continuously variable displacementoperational mode that directs selective firing of the at least oneworking chamber in a dynamically calculated firing pattern that causesselected active working cycles to be fired and selected skipped workingcycles not to be fired; and the firing pattern is determined on aworking cycle by working cycle basis to deliver a desired power output.2. An engine controller as recited in claim 1 wherein the selection ofworking cycles to be skipped is determined dynamically during operationof the engine without the use of predefined firing patterns.
 3. Anengine controller as recited in claim 1 wherein the engine controllerincludes a drive pulse generator that is arranged to receive an inputsignal indicative of a desired engine output and to output the drivepulse pattern that is synchronized with the firing opportunities of theengine, wherein the drive pulse pattern generally indicates when workingcycles need to be fired to deliver the desired engine output.
 4. Anengine controller as recited in claim 3 wherein the drive pulsegenerator is arranged to receive an input signal indicative of a desiredengine output and to output the drive pulse pattern.
 5. An enginecontroller as recited in claim 3 wherein the drive pulse generatorincludes a controller selected from the group consisting of a sigmadelta controller, a pulse width modulation controller, a least meanssquare controller and recursive least square controller.
 6. An enginecontroller as recited in claim 3 wherein the drive pulse generatorfurther receives a variable clock signal that is synchronized withfiring opportunities of the internal combustion engine and utilizes thevariable clock signal in the generation of the drive pulse pattern. 7.An engine controller as recited in claim 3 further comprising a scalerarranged to scale the input signal based at least in part on a relativeoutput of the working cycle firings, wherein the scaler scales the inputsignal before the input signal is delivered to the drive pulsegenerator.
 8. An engine controller as recited in claim 3, wherein thedrive pulse generator includes: a control circuit that receives an theinput the input signal and outputs a feedback modified representation ofthe input signal; and a synchronizer that receives the feedback modifiedrepresentation of the input signal, and outputs a sequence of drivepulses that are synchronized with the engine speed, wherein the sequenceof drive pulses defines the drive pulse pattern.
 9. An internalcombustion engine comprising: a plurality of working chambers eacharranged to operate in a succession of working cycles; a fuel deliverysystem arranged to facilitate the delivery of fuel into the workingchambers; and an engine controller as recited in claim
 3. 10. Aninternal combustion engine as recited in claim 9 wherein the engineoperates on a cycle selected from the group consisting of: a dieselcycle, an Otto cycle; a Miller cycle; a Wankel cycle, and a mixedthermodynamic cycle.
 11. An internal combustion engine as recited inclaim 9 wherein the internal combustion engine is a reciprocating pistonengine having a plurality of cylinders, each cylinder serving as one ofthe working chambers, and wherein each cylinder has an associatedpiston, intake valve, and exhaust valve, wherein the engine is selectedfrom the group consisting of: a two stroke piston engine; a four strokepiston engine; and a six stroke piston engine.
 12. A vehicle comprising:an internal combustion engine as recited in claim 9; a transmission; anda plurality of wheels, wherein at least some of the wheels are driven bythe engine through the transmission.
 13. An engine controller as recitedin claim 1, wherein the engine controller includes: an engine controlunit arranged to control the operation of an engine in a firstoperational mode; and a firing control co-processor that determines thefiring pattern in the skip fire variable displacement mode.
 14. Anengine controller as recited in claim 13 wherein the engine control unitand the firing control co-processor are components of a singleintegrated circuit chip.
 15. A method of controlling the operation of aninternal combustion engine having at least one working chamber, eachworking chamber being generally arranged to operate in a succession ofworking cycles, the method comprising: dynamically determining a firingpattern during operation of the engine on a firing opportunity by firingopportunity basis using feedback control to provide a desired engineoutput; and firing the at least one working chamber in the firingpattern, wherein the firing pattern skips the firing of selected skippedworking cycles and fires selected active working cycles.
 16. A method asrecited in claim 15 wherein feedback or feed forward indicative of theoutput provided by each individual working cycle firing is used in thedetermination of the working cycles to be skipped.
 17. A method asrecited in claim 15 wherein the selection of working cycles to beskipped is determined dynamically during operation of the engine withoutthe use of predefined firing patterns.
 18. A method as recited in claim15 further comprising generating a drive pulse pattern that issynchronized with firing opportunities of the engine, wherein the drivepulse pattern generally indicates when working cycles need to be firedto deliver the desired engine output, and wherein the firing pattern isbased at least in part on the drive pulse pattern.
 19. A method ofcontrolling the operation of an internal combustion engine having atleast one working chamber, each working chamber being generally arrangedto operate in a succession of working cycles, the method comprisingoperating the engine in a variable displacement mode that includesfiring the at least one working chamber in a firing pattern dynamicallydetermined during operation of the engine that skips the firing ofselected skipped working cycles and fires selected active workingcycles, wherein the firing pattern is dynamically determined duringoperation of the engine on a working cycle by working cycle basis toprovide a desired engine output.
 20. A method as recited in claim 19wherein the selection of working cycles to be skipped is determineddynamically during operation of the engine without the use of predefinedfiring patterns.
 21. A method as recited in claim 19 further comprising:generating a drive pulse pattern that is synchronized with firingopportunities of the engine, wherein the drive pulse pattern generallyindicates when working cycles need to be fired to deliver the desiredengine output; and generating the firing pattern based at least in parton the drive pulse pattern, wherein fuel is delivered to the at leastone working chamber in accordance with the firing pattern.
 22. A methodas recited in claim 21 wherein the drive pulse pattern is generated by adrive pulse generator that receives an input signal indicative of adesired engine output and outputs a sequence of drive pulses that aresynchronized with the engine speed, wherein the sequence of drive pulsesdefines the drive pulse pattern.
 23. A method as recited in claim 22wherein the drive pulse generator utilizes a control scheme selectedfrom the group consisting of: sigma delta control, pulse widthmodulation, least means square control and recursive least squarecontrol.
 24. A method as recited in claim 22 further comprising scalingthe input signal based at least in part on a relative output of theworking cycle firings.
 25. A method as recited in claim 21 wherein thedrive pulse generator receives a variable clock signal that issynchronized with firing opportunities of the internal combustion engineand utilizes the variable clock signal in the generation of the drivepulse pattern.